挑战16 分钟未开始

尼姆游戏

核心概念

尼姆(Nim)游戏:有若干堆石子,两人轮流操作,每次从某一堆取走任意多颗(至少 11 颗),取走最后一颗者胜。

尼姆和:把各堆石子数写成二进制,按位做"异或"(相同为 00、不同为 11,即不进位加法),结果叫尼姆和

判定定理:

  • 尼姆和 =0= 0当前局面是必败态(轮到走的人必输);
  • 尼姆和 0\neq 0必胜态,且存在一步把尼姆和变成 00

直观理解 · 动手试试

尼姆游戏的神奇之处,是把"多堆"的复杂博弈压缩成一次二进制按位异或。直觉上,异或为 00 意味着各堆在每个二进制位上都"成双成对"地平衡——这是一种隐藏的对称。

必胜策略就是永远把局面调回"尼姆和为 00":对手一动,必然打破某一位的平衡(尼姆和变非零),你总能在某一堆里调整,把平衡补回来。如此每轮都把"尼姆和为 00"的烫手局面丢给对手,直到对手面对全空(尼姆和为 00 的终局)而落败。两堆相等时尼姆和为 00,正好解释了上一节"镜像必败"的现象。

尼姆游戏

三堆 3, 4, 5 的尼姆和

1堆 = 30011
2堆 = 40100
3堆 = 50101
异或 =0010 = 2
尼姆和 = 2 ≠ 0,先手必胜(可调整某堆使异或归零)。
3
4
5

按位异或(相同为 0、不同为 1,不进位)。尼姆和为 0 即必败态——各二进制位都成双成对地平衡。

例题 1判断尼姆局面

三堆石子 3,4,53, 4, 5,求尼姆和并判断先手胜负。

查看解答步骤

答: 先手胜(尼姆和=2)

例题 2必败局面

三堆石子 1,2,31, 2, 3,先手能必胜吗?

查看解答步骤

答: 尼姆和=0,先手败

即时练习

两堆石子 3311,尼姆和(异或)等于多少?

3=11, 1=013=11,\ 1=01,1101=10=211\oplus01=10=2

两堆石子各 55 颗,先手必胜。

55=05\oplus5=0,尼姆和为 00,先手必败(后手镜像)。

三堆石子 1,2,31,2,3,先手必胜。

尼姆和 123=01\oplus2\oplus3=0,先手必败。

三堆石子 3,4,53,4,5,先手必胜。

尼姆和 =20=2\neq0,先手必胜。

尼姆游戏中,必败态的判据是?

各堆的尼姆和(异或)为 0各堆石子数之和为偶数堆数为偶数最大堆是最小堆的倍数

尼姆和为 00 即必败态,这是 Bouton 定理。

    易错点

    • 把异或当成普通加法。 异或是不进位的二进制加法:11=01\oplus1=0,不是 22
    • 二进制位没对齐。 异或前要把各数右端对齐(按位),位数不同时高位补 00
    • 以为石子总数的奇偶决定胜负。 决定胜负的是尼姆和,而非石子总数或堆数。

    下一步

    前置知识点
    接下来学习