科学网—从抢30到NIM游戏的取胜策略
从抢30到NIM游戏的取胜策略
(一)倒推法
抢30是我国民间的一个两人游戏,具有很强的对抗性和娱乐性。抢30游戏通常有两种玩法。
(1)两人从1开始轮流报数,每人每次可报一个数或两个连续的数,谁先报到30,谁就为胜方。
(2)两人从1开始轮流报数,每人每次可报一个数或两个连续的数,同时把两个人报出的所有数累加,谁先使这个累加数最先达到30,谁就为胜方。
解决最个问题的一般策略是用倒推法。
以(1)为例,要抢到30,必须抢到27;要抢到27,必须抢到24。如此倒推回去,可得到一系列关键数30、27、24、21、18、……9、6、3。
根据以上分析,抢30游戏本身并不是一个公平的游戏,初始数和先后顺序已经决定了最后的结果,因为只有后报数者才能抢到3的倍数,后报数者有必胜策略。
(二)关键因子
所有这些关键数都是3的倍数。3是两个报数者年内能够报出的最大数与最小数的和。在类似游戏中,我们把游戏者所能用到的最大数和最小数之和称之为关键因子k,关键数就是k的倍数.。在抢30的游戏中,关键因子k等于3。
又例如,抢100报数游戏中,如果每人可报数为1至9个连续的自然数,谁先报到100谁就是胜利者。这里的关键因子k就是可报最大数9和可报最小数1的和,即k=10。
报数获胜的策略就是:(1)让对方先报数;(2)每次报数为关键因子减去对方所报数。这样自己每次所报数都是关键数。
如果对方一定要先报,你只能期待对方不懂策略或者大意出错了。
(三)不平衡因子
在上述的抢30或者抢100的游戏中,最后数30是关键因子3的整数倍,最后数100是关键因子10的整数倍。我们可以把这样的游戏称为平衡游戏,也就是最后报数与关键因子相除余数为0。如果最后报数与关键因子相除有余数,这个游戏就可以称为不平衡游戏,其余数就是不平衡因子。
抢数不平衡游戏也是不公平的游戏,先报数者有必胜策略。先报数者的获胜策略就是先消除不平衡因子,使其变成一个平衡游戏,先报数者随后就成为平衡游戏的后报数者。
例如,在抢30游戏中,两人从1开始轮流报数,每人每次可报1到3个连续的数,谁先报到30,谁就为胜方。在这里,关键因子是4,不平衡因子是2。
又例如,抢100报数游戏中,如果每人可报数为1至10个连续的自然数,谁先报到100谁就是胜利者。在这里,关键因子是11,不平衡因子是1。
在不平衡游戏中,如果先报数者不懂得游戏策略,懂得这个策略的后报数者需要不断计算不平衡因子,以便最后获胜。
(四)更多例子
报数游戏里的最后数都是些比较小的数,因此用倒推法比较容易得到策略。当我们把数变得大一些的时候,就变成了小学奥赛题。如果掌握上述讨论中的关键因子和不平衡因子的计算,奥数题也变得迎刃而解了。
下面就是两个奥数例题。
(1)2008个空格子排成一排,第一格放有一个棋子。两人做游戏,轮流移动这枚棋子。每个人每次可前移1到5个格子,谁先把棋子移到最后一格,谁就是获胜者。问怎样的策略才能保证获胜。
(2)桌上放着一堆火柴,共有5000根。两个人轮流从中取火柴,每人每次取的火柴根数为1到8根,谁取了最后一根谁就输。问怎样的策略才能保证获胜。
(五)进一步扩展到NIM游戏
抢30的游戏是中国NIM游戏(也叫筹码游戏)的一种特例。
NIM游戏的一种经典表述为:
有n堆火柴,每堆各有若干根。两人轮流取出火柴,每次取出的根数不限但至少取1根,每次也只能从1堆里取火柴。谁最后把火柴取完,谁就是获胜者。问如何才能保证获胜。
获胜策略已由美国数学家C.L.Bouton分析完成,用到的是二进制和平衡状态概念。其结论是:
如果一开始火柴的总根数转化成二进制后各位数上的数字和都是偶数时,则是平衡状态,后取者必胜。最简单的平衡态是(1,1),即2堆火柴,每堆各1根。
如果开始时火柴的状态处于不平衡状态,先取者必胜,其策略是取完后使火柴根数保持为平衡状态。最简单的不平衡态是(1),即1根火柴。
例如,2堆火柴数都为2根,二进制记为(10,10),各位数之和为20,这是一个平衡态,则后取者必胜。3堆火柴数分别为1根、2根、1根,二进制记为(1,10,1),各位数之和为12,这不是一个平衡态。先取者先取掉中间一堆2根火柴,变成平衡状态(1,1),则先取者必胜。
下面的一道例题,可以用来练习NIM游戏的上述策略:
有3堆火柴,根数分别为12、9、6.。甲乙两人轮番从其中一堆中取出1根或几根火柴,取到最后一根者获胜。先取者还是后取者有必胜策略,如何取胜?
转载本文请联系原作者获取授权,同时请注明本文来自张九庆科学网博客。
链接地址:https://blog.sciencenet.cn/blog-542-23096.html
上一篇:一道愚人节的经典数学趣题
下一篇: (一个探讨性问题)中国的院士到底是应该多还是应该少?
相关知识
Nim游戏
讲题比赛游戏中的必胜策略问题(取棋子游戏)课件
讲题比赛游戏中的必胜策略问题(取棋子游戏).ppt
Python实现战棋游戏策略算法:从入门到进阶的编程指南
策略游戏的攻略,【战略游戏攻略】从入门到精通:让你成为游戏中的战略大师!
科学网—游戏学(Ludology)探秘
崩坏星穹铁道点数取胜怎么解锁 崩坏星穹铁道点数取胜成就攻略
游戏中的AI策略模拟:从策略设计到实现
猫和老鼠手游老鼠快速取胜技巧
《元气骑士》BOSS攻略 从技能选择到攻击策略
推荐资讯
- 1老六爱找茬美女的烦恼怎么过- 4999
- 2博德之门3黄金雏龙法杖怎么得 4867
- 3《大侠立志传》剿灭摸金门任务 4312
- 4代号破晓官方正版角色介绍 4023
- 5赛马娘锻炼到底的伙伴支援卡事 3802
- 6闪烁之光11月兑换码大全20 3774
- 7原神原海异种刷怪路线-原神原 3547
- 8爆梗找茬王厕所特工怎么通关- 3542
- 9《我的世界》领地删除指令是什 3440
- 10原神开局星落湖怎么出去 原神 3426