Nim Game是非常著名的游戏,它的变体也很多,在《编程之美》上也用了三章讲解它。
Wikipedia
上说的很详细,本文则是在对wiki上的内容阅读后的个人理解。
游戏概述:
有M堆石子,每堆石子的个数不一定相同,Bob和Alice交替取石子,只能在一堆石子上取,取的数目任意,但不能为0,也不能大于此堆石子的数目。获胜的判定有两种:一种是谁先把石子去完谁获胜,这种叫Normal Play;另一种是最最后把石子取完谁输,这种叫Misere Play。
假设有M堆石子,(H1,H2...HM),XOR(H1...HM) = X,我们的目标是将 (H1,H2...HM)变为(0,0...0),即XOR()=0,那么我们说任何XOR()=0的情况都是“安全状态”,对于Normal Play来说,取石子的那个人都想让自己取完石子后,石子堆为“安全状态”。
存在两个定理:

本文探讨了Nim游戏的理论基础,分析了不同情况下的胜负条件。当所有堆的石子数量为1且堆数为偶数时,Bob必然获胜;若堆数为奇数,则Alice稳操胜券。对于非特定状态,Bob可通过特定策略将局面导向有利于自己的奇数个1状态,从而提高获胜概率。
最低0.47元/天 解锁文章
3307

被折叠的 条评论
为什么被折叠?



