桌上有好几堆石子。两人轮流操作,每次只能选一堆,从中取走至少一颗、最多全部(但不能跨堆取)。谁取走全场最后一颗石子,谁就赢了。听起来靠运气?其实每一步都有数学上的最优解。
每堆石子数转为二进制,逐位做 XOR 运算。当尼姆和 = 0 时,当前行动方必败。
XOR = 0 意味着各位上 1 的个数都是偶数。无论你怎么取,都会打破这个平衡(让某些位变成奇数个 1),对手总能找到一步恢复平衡。最终石子取完时,一定轮到你面对空局面——你输了。
所有玩家的对局数据汇总,看看 AI 的胜率有多恐怖。
把每堆石子数写成二进制,逐位做 XOR。结果叫「尼姆和」。这个值决定了谁必胜。
尼姆和 ≠ 0 时,当前玩家有必胜策略:找到一堆,取走若干石子使尼姆和变为 0。
尼姆和 = 0 时,无论怎么取都会让尼姆和变为非零——把必胜权交给对手。
尼姆游戏是组合博弈论的基石。任何无偏博弈(Impartial Game)都等价于某个尼姆堆。
在困难模式下,如果 AI 先手且初始尼姆和 ≠ 0,你几乎不可能赢——因为 AI 每步都走最优。唯一的机会是:选择一个初始尼姆和 = 0 的局面(比如 [1,2,3]),让 AI 先手,它就陷入必败态了。试试「入门 [1,2,3]」局面,让 AI 先走。
尼姆游戏只是冰山一角。很多看似简单的游戏,背后都有深刻的数学结构。
一堆 n 个石子,每次取 1~m 个。n%(m+1)=0 时后手必胜。模运算决定命运。
两堆石子,可从一堆取或两堆取相同数量。必胜态与黄金比例 φ 有关。
任何有限无偏博弈都能算出一个 Grundy 值,多个子游戏的 Grundy 值做 XOR 就是总局面的值。