小学堂
脑力小体操:中学时代真有人会去玩的Nim游戏
数学家也会研究游戏,分析游戏的本质、计算最佳策略,甚至发展出一门学科——不是博弈论。其中最著名的成果大概就是约翰·康威几人合著的《稳操胜券》(winning ways for your mathematical plays)一书。
不过,曾有数学家吐槽说:数学家研究的游戏,通常不是真正意义上的游戏,不好玩,也不会真的有人去玩。
而尼姆游戏则是为数不多的例外,本身非常有趣,很多人都曾在中学时代和同学一起玩过。在传统游戏里,其在校园中的流行程度或许仅此于五子棋。
尼姆(Nim),又译为拈,是一种两个人玩的回合制数学战略游戏。或许起源于中国,1901年,哈佛大学的数学教授将其命名为Nim。
规则是游戏者轮流从一堆棋子(或者任何道具)中取走一个或者多个,最后不能再取的就是输家。当指定相应数量时,一堆这样的棋子称作一个尼姆堆。
实际上最常见的玩法如下:两个人轮流划去若干○。划去最后的○的人赢得游戏(另一个无圈可划)。要求是,每个人每轮只能划去一行中的○,至少一个,最多可以划去一整行。
○○○
○○○○
○○○○○
实际的游戏过程中,为了提高难度,可以增加行数,也可以修改某些规则,衍生出其它玩法。最常见的就是,将胜负判定改为:划去最后一个○为输家。
尼姆游戏本身不但是经典的研究课题,和诸如斐波那契数列(可以提前判断先手的胜负)等内容产生联系,同时也是最重要的示例模型。
斯普莱格(R.P.Sprague)和格隆第(P.M.Grundy)独立地证明了一切无偏博弈(从任何一个局势出发,双方可以采取完全相同的行动,也就是说棋盘上没有颜色的区分)都等价于一个特定大小的尼姆堆。但这里的尼姆堆包含的棋子数量可以是无穷的。事实上,它可以是任何序数。
对于经典规则的尼姆游戏,我们可以通过二进制来判断当前局面——下一个行动的玩家是否有必胜走法。
利用上面的初始设置,把圆圈个数转为二进制。
3=》 11;
4=》100;
5=》101;
然后将每个竖列上的数字相加,
和=》212。
判断规则是这样,如果“和”中每个数字都是偶数,则下一轮轮行动的玩家没有必胜走法。显而易见,212中间有个1,所以下一轮行动的玩家有必胜走法。
其实显而易见,所谓必胜走法,就是我划去某行的几个○后,使新的二进制表示得到的和的每个数字都是偶数的玩法!比如说,去掉最上一行的两个○。