尼姆游戏-取硬币游戏

转自:http://www.guokr.com/article/68595/

在所有二人游戏中,最古老最有魅力的就是这个尼姆游戏了(好吧,在所有二人数学游戏中)。据说它发源于中国,有时候孩子们用纸片玩,但通常人们出门可能很少带纸片,所以我们用硬币玩。

这个游戏最流行的版本是用 12 枚硬币摆成三行。

http://img1.guokr.com/gkimage/jp/il/pv/jpilpv.png

游戏规则很简单,游戏双方轮流取 1 枚或多枚硬币(只能在同一行),谁拿到最后一枚就算赢。留心的朋友玩几把就可以琢磨出,只要在自己的某一个回合里留下两行多于 1 枚且数量相同的硬币,就能确保获胜。一个优势策略是,先手的人一开始就拿掉最上面一行 2 枚硬币,这样的话,离胜利就不远了。

有趣的是,有人发现,当扩展到任意多行,每行有任意枚硬币时,利用二进制,可以把这个游戏玩得风生水起。哈佛大学的数学教授布顿在 1901 年首次发表了论文详述了这个问题,也正是他,正式将这个游戏命名为尼姆游戏。

把玩家每一步操作之后的游戏局面叫做“棋局”。在布顿的论文中,如果玩家每一步操作后的棋局能保证自己获胜,那就是“安全的”,否则就是“不安全的”。每个不安全棋局都可以一步正确的操作变成安全的,而如果没有正确地操作,一个安全的棋局就会变成不安全的。

如何判定一个棋局是安全的还是不安全的呢?这就用到了前面提到的二进制。将每一行的硬币数都用二进制表示,按矩阵元素的排列方式对齐,这时候如果每一列的数( 0 或 1 )相加都为偶数(包括 0 ),那么这个棋局就是安全的,只要有一列元素相加不为偶数,那这个棋局就是不安全的。

回到我们上面说的那个流行版本上,可以看到在初始状态,它的二进制表示如下图

http://img1.guokr.com/gkimage/f3/jd/14/f3jd14.png

可以看到,第 2 列之和为奇数,所以这个本版的初始状态是不安全的。拿掉最上面一行的 2 枚硬币,第 1 行就变成了 1 ,从而留下了一个安全棋局。通过用其他方法试验,可以看到,拿掉第 1 行的 2 枚硬币是留下安全棋局的唯一操作。

把棋局转化成上面这个二进制表格,根据表格决定怎么操作就不会出错了。但是在玩的时候,恐怕对手没那么宽容,让你不断画表格,在脑子中计算,一不小心就出错。那么记住下面这条就很有用了:在两行里留下同样多的硬币,总能赢。在此之后,让每行硬币数量保持相等就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值