格雷船长(外号「独眼鲨」)带着他的海盗团劫了一艘客船,把人质关进底舱。这伙海盗不缺金子,缺的是乐子——他们都是 NIM 游戏的老赌徒。
船长拍出一袋珍珠:「每赢一局,放走一个人质;每输一局嘛……哼哼,加押一批货。」鹦鹉波利原本是船长打劫来学堂时顺手掳走的军师,它读过 1901 年哈佛数学家布顿(Charles Bouton)的论文,心里藏着必胜密码。它悄悄对人质小贝说:「别怕,按我的口诀下,您能把全船人都救出去。」
拿石子、火柴、硬币玩「轮流取、定输赢」的游戏,在欧洲民间流传了几百年;「NIM」这个名字一般认为来自德语 nimm(「拿吧!」)。但它真正的名气来自 1901 年——哈佛大学的布顿发表了论文,完整证明了必胜策略,NIM 从此成为博弈论的第一课。
游戏规则只有一句话:轮流从一堆里拿走任意颗(至少 1 颗,只能动一堆),谁按规定拿走关键的珍珠谁赢。规则越简单,里头的数学越深。
「取最后一颗者胜」的玩法里,波利的口诀是:把每堆的数目写成二进制,让每个数位上的 1 全都配成双。配成双的局面是「铁桶阵」——谁面对它谁输;配不双就去拆一堆,把它拆到「配平」为止。
比如桌上是 3、4、5 三堆:
3 那一堆「多出来」的部分恰好是 2,所以从 3 里拿走 2 颗、留下 1:变成 1、4、5,密码配平,铁桶阵成!之后船长怎么拿,波利都能拆回去。
「取最后一颗者负」的玩法更阴险。前面照旧用配对密码,但快收尾时要用例外口诀:当桌上只剩「单珠堆」(每堆都只有 1 颗)时,密码作废,改成——谁面对奇数颗单珠堆,谁就得吞下最后一颗!
比如 (1,1,1):三颗单珠(奇数),先手必败——拿哪颗都一样,最后一颗准砸您手里。而 (1,1)(偶数)反而是先手必胜。
还有一手:如果只剩一堆大珠加几颗单珠,就把那大堆整堆拿走或只留 1 颗,硬把奇数颗单珠堆塞给船长。这正是 (3,3,1) 里「拿走那颗单珠」的妙处——留下 (3,3) 让他先动,他怎么拿都露破绽。
最妙的在这里:拿到布阵后,人质要选「谁先拿」和「怎么算输赢」。波利证明了——不管小墨怎么布阵,对每种规则来说,先手要么必胜、要么必败,二者必居其一。
唯一的风险是:选对了先手,后面的每一步也得走对——一步走错,铁桶阵就归船长用啦。当然,低星级的时候船长常常犯困……