博弈论 NIM取子问题 组合数学
来源:互联网 发布:深圳桃花岛休闲会所js 编辑:程序博客网 时间:2024/06/05 20:20
Nim取子游戏是由两个人面对若干堆硬币(或石子)进行的游戏。设有k>=1堆硬币,各堆分别含有
1.两个游戏人交替进行游戏(游戏人I和游戏人II);
2.当轮到每个游戏人取子时,选择这些堆中的一堆,并从所选的堆中取走至少一枚硬币(游戏人可以取走他所选堆中的全部硬币);
3.当所有的堆都变成空堆时,最后取子的游戏人即为胜者。
这个游戏中的变量是堆数k和各堆的硬币数
我们看一下特殊情况如何取胜:
如果游戏开始时只有一堆硬币,游戏人I则通过取走所有的硬币而获胜。现在设有2堆硬币,且硬币数量分别为
每个正整数都有对应的一个二进制数,例如:57(10)==111001(2) ,即:57(10)=
如果每一种大小的子堆的个数都是偶数,我们就称Nim取子游戏是平衡的,而对应位相加是偶数的称为平衡位,否则称为非平衡位。如有3堆为5、10、15
这个时候:
这个时候我们说上面的石子堆处于平衡状态。
我们以一个两堆硬币的Nim取子游戏作为试验。设游戏开始时游戏处于非平衡状态。这样,游戏人I就能通过一种取子方式使得他取子后留给游戏人II的是一个平衡状态下的游戏,接着无论游戏人II如何取子,再留给游戏人I的一定是一个非平衡状态游戏,如此反复进行,当游戏人II在最后一次平衡状态下取子后,游戏人I便能一次性取走所有的硬币而获胜。而如果游戏开始时游戏牌平衡状态,那根据上述方式取子,最终游戏人II能获胜。
归根结底,Nim取子游戏的关键在于游戏开始时游戏处于何种状态(平衡或非平衡)和第一个游戏人是否能够按照取子游戏的获胜策略来进行游戏。
- 博弈论 NIM取子问题 组合数学
- 组合数学——Nim取子游戏
- 组合数学——Nim取子游戏
- poj 2234 博弈论Nim取子游戏
- 组合数学——Nim取子游戏 太有趣了
- 组合数学之第一章之完美覆盖,断层线,幻方,拉丁方,Nim取子游戏
- ACM Nim游戏(组合博弈论)
- 博弈论之Nim问题
- 博弈论经典问题Nim问题
- Nim取子游戏
- Nim取子游戏
- 【转】博弈论--取物品和Nim游戏
- Nim游戏(又名取石子问题)—博弈论入门(一)
- 博弈论-取石子问题
- 博弈论经典问题NIM问题的解法
- Nim取石子问题
- [HDU 5795] A Simple Nim【博弈论&组合游戏】
- 博弈论之NIM取石子游戏与SG函数
- if()括号里的小总结
- [Node.js]Buffer
- Android MVP 十分钟入门!
- Android 内核驱动开发 问题记录(一)
- RHEL6.8重新调整home分区大小
- 博弈论 NIM取子问题 组合数学
- KiCad设计PCB-27-封装的旋转和替换修改
- LeetCode 100. Same Tree
- 五、Hadoop 2.5.2分布式环境部署
- centos 7下mysql5.7 主从数据库同步配置
- su: cannot set user id: Resource temporarily unavailable 问题分析和解决
- ThinkPHP框架----控制器调用模型里的方法,一直报错——Think\Model:..方法不存在!
- 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
- [Node.js]EventEmitter