博弈论(van♂游戏) 笔记
博客观赏效果更佳
前言
会持续更新的呢,毕竟博弈论是个毒瘤啊。
其实不要以为博弈论很变态,它是很有趣的。能理解透的话,一点都不难。其实,博弈论的本质,就是教你van♂游戏啊!
从一个简单的问题(Nim)入手
有n堆石子,你每次珂以从某一堆中取出若干个石子。先后手轮流操作。如果某个人把石子取完了,那就赢了。换句话说,如果某个人没有石子取了,那就输了。
先手有必胜策略么?
我们遇到什么问题,也不要怕,暴力的面对它!消除AC的最好办法就是爆搜!加油,TLE!
最强的数据是 n < = 1 e 5 n<=1e5 n<=1e5,石子数 < = 1 e 18 <=1e18 <=1e18。而我们只需要两三行代码就能解决问题。爆搜都没有这么短。
我们考虑把每一堆石子的数量二进制拆分。(为什么是二进制?因为二进制只有 0 0 0和 1 1 1,没有系数,方便考虑)比如 7 7 7就变成 4 + 2 + 1 4+2+1 4+2+1。
我们把它变成一个 n n n行 l o g a loga loga列的矩阵。比如 a = 3 , 4 , 7 a={3,4,7} a=3,4,7,变成:
0 1 1
1 0 0
1 1 1
考虑先手必败的情况:每一列上的数和都是偶数时,必败。
(珂朵莉第一博弈定理)
证明:每一列和均为偶数时,先手必败
对于某个 a i a_i ai,我们把它减去某个数,就相当于把 a i a_i ai某一些位置上的0/1变成了1/0。
那么我们找一个最高位不低于 a i a_i ai的 a j a_j aj,把相同的位置上的0/1也变成1/0。
(由于每一列的和都是偶数,所以我们肯定能找到一个最高位不低于 a i a_i ai的 a j a_j aj)
这样一波操作,每一列的和肯定还都是偶数。先手能操作,后手就一定能操作。后手操作到最后一步,先手就没了。而且先手肯定赢不了。
证毕
所以除了这样以外,肯定是先手必胜。也能想象出必胜策略:把某一堆石子拿掉一些,让剩下的局面变成必败型,然后留给后手下。根据上面的“珂朵莉第一博弈定理”,后手必败,所以先手必胜。
组合游戏
都尼玛是定理。自己查资料,或者参考刘汝佳的《算法竞赛入门经典——训练指南》(小蓝书)。要电子稿的联系3348064478@qq.com,我会友情赞助的。
把别的游戏转化成Nim游戏
Nim游戏的精髓在于几个关键词:
- “减少”
- 没了就赢了
这里,减少打上了引号。因为减少,珂以是各种你想不到的形式,比如说把某个数变成它的一个因数,也是一种“减少”。(本质就是,把它分解质因数,然后减少了几个项的指数)。
当然,减少了什么变量,也是一个珂以转化的点。举几个刘汝佳书上的例子罢。
翻棋子游戏
有一个n行m列的01矩阵。每次珂以选一个为1的位置(x,y),把它和同一行/列上,且在严格左/上方位置的一个位置,同时翻转(异或1)。不能操作就输了。先手还是后手必胜。
解法
把一个为1的位置上的(x,y)看成两堆大小为x和y的石子。原因:同一行/列,就是告诉你只能改变x,y中的一个。严格左/上方告诉你必须要是减小。好的,到这一步就能理解为什么这样能转化成Nim了。
除法游戏
n行m列的矩阵,每一行有一些正整数。先后手轮流操作。每次选择同一行中,若干个元素,把这些数都变成它们的某个真因子(就是不等于自己,而且是自己的因数)。不能操作的输。
(PS:1没有真因子)
解法
把每一行的所有数的质因数的指数和相加。原因:真因子相当于减少某一项质因数的指数。同一行只是唬你的幌子。只要把同一行的加起来就珂以了。
博弈论(van♂游戏) 笔记相关推荐
- 耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之约会游戏与古诺模型
耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之约会游戏与古诺模型 目录 耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之约会游戏与古诺模型 约会游戏 古诺双寡头模型 约会 ...
- 耶鲁大学 博弈论(Game Theory) 笔记1
耶鲁大学 博弈论(Game Theory) 笔记1 博弈论主要研究策略形势即不完全竞争情况,策略形势被定义为行为影响结果,但结果不仅自身行为也取决于其他人的行为. 博弈论笔记1 summary 成绩游 ...
- 耶鲁大学 博弈论(Game Theory) 笔记4-足球比赛与商业合作之最佳对策
耶鲁大学 博弈论(Game Theory) 笔记4-足球比赛与商业合作之最佳对策 文章目录 点球博弈 结论 最佳对策定义 参与者针对对手策略的定义 广义定义 合伙人博弈 外部性 点球博弈 其中U1(4 ...
- MOOC-浙江大学-博弈论基础-学习笔记(一)
MOOC-浙江大学-博弈论基础-学习笔记(一) 老师:蒋文华 知人者智,自知者明: 胜人者力,自胜者强: 小胜者术,大胜者德. 第一讲 概论 1.何为博弈? 博-博览全局, 奕-对弈棋局, 谋定而动! ...
- 耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之纳什均衡之伯川德模型与选民投票
耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之纳什均衡之伯川德模型与选民投票 目录 耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之纳什均衡之伯川德模型与选民投票 伯川德 ...
- C++小游戏笔记——射击小行星(附源码)
C++小游戏笔记--射击小行星(附源码) 游戏展示图 一.飞船 1.飞船的绘制 2.飞船的角度 二.小行星 1.小行星的绘制 2."凹凸不平"效果的形成 3.小行星的分裂 三.子弹 ...
- 如何计算近似纳什均衡_《纳什均衡与博弈论》读书笔记
这本书用比较浅显易懂的方式讲述了纳什均衡理论,及其在各个领域的应用. 说到纳什均衡,那么可以推荐看看电影<美丽心灵>,原型就是约翰·纳什,1994年诺贝尔经济学奖获得者(同年还有约翰·C· ...
- BZOJ 3729: Gty的游戏 [伪ETT 博弈论]【学习笔记】
题意: 给定一棵有根树,每个节点有一些石子,每次可以将不多于k的石子移动到父节点 修改一个点的石子数,插入一个点,询问某棵子树是否先手必胜 显然是一个阶梯Nim 每次最多取k个,找规律或者观察式子易发 ...
- 牛客网-数据结构笔试题目(三)-博弈论圆圈游戏(Circle Game)(附源码)
题意 从前有两个人,一个叫Utkarsh,另外一个叫Ashish. 这两个人在一个2D的棋盘上玩移动棋子的游戏,一开始从原点出发,Ashish先手.每次可以把棋子向上或者是向右移动k个单位的距离.两人 ...
最新文章
- leetcode--Two Sum(2)
- [学习笔记]信号与系统
- Gradle在IDEA中创建web项目
- 008. 限制上传文件的大小
- JAVA进阶开发之(String字符串的存储原理)
- CVPR 2020 顶会 AI学术检索工具
- linux里用户权限:~$,/$,~#,/#的区别与含义
- python编程入门与案例详解-Python程序设计案例课堂
- windows 问题排查
- 前端 angular 和 bootstrap 的安装步骤
- iconfont-阿里巴巴矢量图标库的使用
- 等价类划分法设计测试用例
- Canbus通信协议
- 《Visual Basic.Net 循序渐进》问题收集贴
- __builtin_函数
- 注册码破解神器--OllyDbg
- 【英译中】如何拍好沙滩照1——2014年7月23日
- 【STM32】按键抖动及消除
- 一文读懂直播卡顿优化那些事儿
- 除了 P 站,还有这些站 ~~
热门文章
- vue请求拦截 给所有的api接口的请求 params 带上一个存储的值及qs的安装
- 被微信绑架下的生活 还能刷出存在感吗
- 【MySQL】MySQL 存储引擎、索引、锁、集群
- Web3 | DID赛道之 Galxe(原 Project Galaxy)
- flip game java_LeetCode 293. Flip Game
- 李宏毅《机器学习》笔记:3.误差分析和梯度下降
- android 代码 lut,如何将颜色LUT应用于位图图像以获取android中的滤镜效果?
- 计算机应用基础网上作业2,华东理工 计算机应用基础(本)网上作业2
- chrome浏览器强制采用https加密链接
- OSPF 协议中的一个普通区域通过ASBR 注入192.168.0.0/24~192.168.3.0/24 共4 条路由,在ABR 中配置聚合为一条聚合路由192.168.0.0/22,此时ABR 会