巴什博奕(Bash Game)入门

巴什博奕(Bash Game):

只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜

结论:若(m+1) | n,则先手必败,否则先手必胜

显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜

因此我们发现了如何取胜的法则:

如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜总之,要保持给对手留下(m+1)的倍数,就能最后获胜。

斐波那契博弈(Fibonacci Nim)

有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:

1)先手不能在第一次把所有的石子取完,至少取1颗;

2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。

约定取走最后一个石子的人为赢家,求必败态

结论:当n为Fibonacci数的时候,必败

用第二数学归纳法证明:

为了方便,我们将n记为f [ i ]

1、当i=2时,先手只能取1颗,显然必败,结论成立

2、假设当i<=k时,结论成立

则当i=k+1时,f[i] = f[k]+f[k-1],则我们可以把这一堆石子看成两堆,简称k堆和k-1堆(一定可以看成两堆,因为假如先手第一次取的石子数大于或等于f[k-1],则后手可以直接取完f[k],因为f[k] < 2f[k-1])对于k-1堆,由假设可知,不论先手怎样取,后手总能取到最后一颗,如果先手第一次取的石子数y>=f[k-1]/3,则这小堆所剩的石子数小于2y,即后手可以直接取完,此时x=f[k-1]-y,则x<=2/3f[k-1],比较2/3f[k-1]与1/2f[k]的大小。即4f[k-1]与3f[k]的大小,对两值作差后不难得出,后者大。所以,x<1/2*f[k],即后手取完k-1堆后,先手不能一下取完k堆,所以游戏规则没有改变,则由假设可知,对于k堆,后手仍能取到最后一颗,所以后手必胜,即i=k+1时,结论依然成立。而对于n不是Fibonacci数的情况:

由“Zeckendorf定理”

[齐肯多夫定理]

https://90nwyn.blog.luogu.org/ji-ken-duo-fu-ding-li%EF%BC%89%EF%BC%9A)

任何正整数可以表示为若干个不连续的Fibonacci数之和

n = f[a1]+f[a2]+……+f[ap]。(a1>a2>……>ap)

我们令先手先取完f[ap],即最小的这一堆。由于各个f之间不连续,则a(p-1) > ap + 1,则有f[a(p-1)] > 2*f[ap]。即后手只能取f[a(p-1)]这一堆,且不能一次取完。此时后手相当于面临这个子游戏(只有f[a(p-1)]这一堆石子,且后手先取)的必败态,即先手一定可以取到这一堆的最后一颗石子同理可知,对于以后的每一堆,先手都可以取到这一堆的最后一颗石子,从而获得游戏的胜利。

威佐夫博奕(Wythoff Game):

有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜

我们用

(a [ k ] , b [ k ] ) ( a [ k ] ≤ b [ k ] , k = 0 , 1 , 2 ,… n )

来表示两堆物品的数量,并且称这个为局势

仔细思考可以发现先:

(0,0)(1,2)(3,5)(4 ,7)(6,10)(8,13)

这几种局势,无论先手怎么取都是后手赢,称为“奇异局势”

可以发现这些局势的差值是递增的,分别为 0,1,2,3,4,5,6,7…n,且每个奇异局势的第一个值是未在前面出现过的最小的自然数

性质:

1.任何自然数都包含在一个且仅有一个的奇异局势中

2.任何操作都会将奇异局势变成非奇异局势

3、采用适当的方法,可以将非奇异局势变为奇异局势

从如上性质可知,两个人如果都采用正确操作,那么面对非奇异局势,先拿者必胜;反之,则后拿者取胜

判断奇异局势:

黄金分割率为0.618,威佐夫博奕的优雅在于:

设局势(a,b)(a,b)的差为c,若a=c+c*0.618a=c+c∗0.618,则该局势为奇异局势

尼姆博奕(Nimm Game):

有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜

用(a,b,c)表示某种局势,任何奇异局势都有a XOR b XOR c = 0

对于非奇异局势,假设 a < b < c,我们只要将 c 变为a XOR b,即可变为奇异局势,因为有如下的运算结果:

a XOR b XOR (a XOR b)=(a XOR a) XOR (b XOR b) = 0 XOR 0 = 0

要将c 变为a XOR b,只要对 c进行 c-(a XOR b)这样的运算即可

巴什博奕(Bash Game)入门相关推荐

  1. 三种典型的博弈论问题之巴什博奕(Bash Game)

    什么是博弈论 官方回答: 博弈论,又称为对策论(Game Theory).赛局理论等,既是现代数学的一个新分支,也是运筹学的一个重要学科. 博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争 ...

  2. 【小组专题二:博弈论入门综述(1)】NP状态 | SG函数 | 巴什博奕、威佐夫博弈、斐波那契博弈、Nim游戏、SJ定理

    博弈论综述[1] 前言 博弈与博弈论 博弈树 NP状态 SG函数(Sprague-Grundy) Sprague-Grundy Theorem 巴什博奕 Bash Game 威佐夫博弈 扩展威佐夫博弈 ...

  3. 博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase)

    博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase) 转载自: http://tieba.baidu.com/p/1474319443 http://blog.sin ...

  4. 巴什博奕(Bash Game)与威佐夫博弈(Wythoff game)

    绪论 博弈论又被称为对策论,既是现代数学的一个新分支,也是运筹学的一个重要学科. 博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法.博弈论考虑游戏中的个体的预 ...

  5. 博弈论入门之巴什博奕

    巴什博奕 巴什博奕: 两个顶尖聪明的人在玩游戏,有\(n\)个石子,每人可以随便拿\(1-m\)个石子,不能拿的人为败者,问谁会胜利 巴什博奕是博弈论问题中基础的问题 它是最简单的一种情形对应一种状态 ...

  6. D - 邂逅明下 HDU - 2897(有点水平的巴什博奕)

    当日遇到月,于是有了明.当我遇到了你,便成了侣. 那天,日月相会,我见到了你.而且,大地失去了光辉,你我是否成侣?这注定是个凄美的故事.(以上是废话) 小t和所有世俗的人们一样,期待那百年难遇的日食. ...

  7. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈)

    巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流从中取物,规定每次最少取一个,最多取m个,最后取光者为胜 举一个最简单的例子就是,当n=m+1时,此时不管先手取多少,后手都能把剩下的取完 ...

  8. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)

    一.  巴什博奕(Bash Game): A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30.这应该是最古老的关于巴什博奕的游戏了吧. 其实如果知道原理,这游戏一点运气成分都没有,只和先手 ...

  9. 四种基础博弈 巴什博奕+威佐夫博奕+斐波那契博弈+K倍博弈

    博弈论(Game Theory) 博弈论是指研究多个个体或团队之间在特定条件制约下的对局中利用相关方的策略,而实施对应策略的学科.有时也称为对策论,或者赛局理论,是研究具有斗争或竞争性质现象的理论和方 ...

最新文章

  1. DeepMind推出首个商业产品,30秒内准确诊断眼疾!
  2. 如何修改word中的单位信息、用户信息及文档属性
  3. [Android]使用RecyclerView替代ListView(四:SeizeRecyclerView)
  4. 19-7-14 学习笔记
  5. 粗浅看 java反射机制
  6. maven中jar下载失败
  7. win7映射linux硬盘_win7下安装Linux实现双系统全攻略
  8. spring学习(7):加入log4g日志系统
  9. Oracle 数据库常用操作总结一之用户的创建、删除和赋权
  10. 上亿只“小白鼠”有救了,AI可检测化学物质甚至还更准确
  11. Linux下SVN服务器迁移(详细版)
  12. 华为、蚂蚁金服等都在招聘的大数据开发,需要具备哪些技能
  13. 基于python LDA模型的英文推特邮件主题分析 完整数据+代码 可直接运行
  14. 记录谷粒学院的一些问题--------------chapter1
  15. 【Python】星号与双星号
  16. 做了一个以防小憩被媳妇打扰的快捷指令
  17. 集米社浅谈下那些令网兼者疯狂的时代。
  18. django-外键和表关系
  19. 五种方法教你鉴别山寨、欺诈和钓鱼网站
  20. Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer(阅读报告)

热门文章

  1. Adobe Acrobat DC 设置保存上次浏览位置
  2. 如何学习深度学习——我的高质量学习资源列表
  3. 【快速入门】YOLOv5目标检测算法
  4. [Reading]THIRD BASE
  5. 这可能是全球发展最快的移动互联网公司
  6. 竞价排名真不是谁出价最高,一定排在最前面(史上最大误会)
  7. java 求圆的面积和圆柱体的体积
  8. android高级编程新浪,《C高级编程(第4版)》-完整教材教程
  9. STC89C52RC - 12 - 静、动数码管显示
  10. 线上服务器崩溃,线下门店破万,社交新宠「剧本杀」是如何迅速爆火的?