Nim取子游戏

来源:互联网 发布:解析域名 英文 编辑:程序博客网 时间:2024/06/06 08:54
    据说,Nim(拈),源自中国,经由被贩卖到美洲的奴工们外传。辛苦的工人们,在工作闲暇之余,用石头玩游戏以排遣寂寞。后来流传到高级人士,则用便士(Pennies),在酒吧柜台上玩。
最有名的玩法,是把十二枚便士放成3、4、5三列,拿光铜板的人赢。后来,大家发现,先取的人只要在3那列里取走2枚,变成了1、4、5,就能稳操胜券了,游戏也就变得无趣了。于是大家就增加列数,增加铜板的数量,这样就让人们有了毫无规律的感觉,不易于把握。

    直到本世纪初,哈佛大学数学系副教授查理士•理昂纳德•包顿(Chales Leonard Bouton)提出一篇极详尽的分析和证明,利用数的二进制表示法,解答了这个游戏的一般法则。

    我们先从一个简单的问题还是讨论,把所有铜板分为两堆。(1)假设这两堆铜板数量不一样,玩家1把数量多的一堆拿走一部分,使得两堆铜板的数量一样多,接下来,玩家1只需要模仿玩家2从另一堆中取走相同的铜板就能获胜,也就是说玩家1必胜。(2)加入两堆铜板数量一样,玩家2只要模拟玩家1,从另一堆中取走相同的铜板就能获胜,这种情况玩家2必胜。

    那么假设是把铜板分成k堆呢?

    我们把每一堆铜板的数量用二进制数表示,假设k = 4,每一堆为:7,9,12,15,用二进制表示为:

0111

1001

1100

1111

每一位的1加起来:3323,因为每一位的个数都不相同,所以,玩家1必胜。玩家1只需要在第一次取走(1101)2=13个数,以后每一次玩家2取走后,玩家1把石子变回平衡就能实现必赢的局面了。