超好玩硬币游戏,你都会玩吗?
出门在外,恰逢不巧,你和朋友被困住了,干点什么呢。来几局三国杀?是个不错的提议,但问题是你带牌了吗,没牌怎么打?死理性派想说的是,会玩的孩子怎么不能玩!凑几个硬币,随随便便就能玩一整天。不得不说,硬币是世界上最好的游戏机,哦,前提是你得懂点数学。
尼姆游戏
在所有二人游戏中,最古老最有魅力的就是这个尼姆游戏了(好吧,在所有二人数学游戏中)。据说它发源于中国,有时候孩子们用纸片玩,但通常人们出门可能很少带纸片,所以我们用硬币玩。
这个游戏最流行的版本是用 12 枚硬币摆成三行。
游戏规则很简单,游戏双方轮流取 1 枚或多枚硬币(只能在同一行),谁拿到最后一枚就算赢。留心的朋友玩几把就可以琢磨出,只要在自己的某一个回合里留下两行多于 1 枚且数量相同的硬币,就能确保获胜。一个优势策略是,先手的人一开始就拿掉最上面一行 2 枚硬币,这样的话,离胜利就不远了。
有趣的是,有人发现,当扩展到任意多行,每行有任意枚硬币时,利用二进制,可以把这个游戏玩得风生水起。哈佛大学的数学教授布顿在 1901 年首次发表了论文详述了这个问题,也正是他,正式将这个游戏命名为尼姆游戏。
把玩家每一步操作之后的游戏局面叫做“棋局”。在布顿的论文中,如果玩家每一步操作后的棋局能保证自己获胜,那就是“安全的”,否则就是“不安全的”。每个不安全棋局都可以一步正确的操作变成安全的,而如果没有正确地操作,一个安全的棋局就会变成不安全的。
如何判定一个棋局是安全的还是不安全的呢?这就用到了前面提到的二进制。将每一行的硬币数都用二进制表示,按矩阵元素的排列方式对齐,这时候如果每一列的数( 0 或 1 )相加都为偶数(包括 0 ),那么这个棋局就是安全的,只要有一列元素相加不为偶数,那这个棋局就是不安全的。
回到我们上面说的那个流行版本上,可以看到在初始状态,它的二进制表示如下图
可以看到,第 2 列之和为奇数,所以这个本版的初始状态是不安全的。拿掉最上面一行的 2 枚硬币,第 1 行就变成了 1 ,从而留下了一个安全棋局。通过用其他方法试验,可以看到,拿掉第 1 行的 2 枚硬币是留下安全棋局的唯一操作。
把棋局转化成上面这个二进制表格,根据表格决定怎么操作就不会出错了。但是在玩的时候,恐怕对手没那么宽容,让你不断画表格,在脑子中计算,一不小心就出错。那么记住下面这条就很有用了:在两行里留下同样多的硬币,总能赢。在此之后,让每行硬币数量保持相等就可以了。
尼姆游戏深受数学家喜爱并被广泛研究,它因此产生了很多变体。1910 年美国数学家穆尔就提出了一个,它规则与尼姆游戏相同,只不过玩家可以从不超过指定数 k 的任意多行里拿掉硬币。有趣的是,它同样可以通过二进制来分析,只要把安全棋局定义为:二进制表里的每列之和都可以被 k + 1 整除就可以了。
后选择一定赢的硬币游戏
对于粗心大意和无知的人来说,这个游戏就是一个十足的陷阱。让我们来看看这个它是怎么玩的。
抛三次硬币看最后哪一面朝上,结果无非只有这 8 种:
正正正 正正反 正反正 反正正 正反反 反正反 反反正 反反反
这个游戏的规则是,对手有优先选择权。首先对手在这 8 种组合总选一种作为他的组合,然后你选一组作为自己的组合。双方选定后,随便选一个人来连续抛硬币,直到他的或你的组合出现为止,谁的组合先出现谁就算赢。
这个游戏看上去没有什么问题,不管哪种组合,它们出现的概率都是一样的。但如果谁真这么想,那他可就输定了。事实上,先选的人一定会被针对。无论对手选择选择哪个组合,后选的人都可以选一个组合来针对他,是自己的获胜概率至少提高到 2/3 !
如果你不相信的话,就让我们选一个简单的例子来分析看看。假设对手选择的是“正正正”的组合,这时候我们只要选择“反正正”,胜率就可以瞬间到达 7/8。这是为什么呢?
如果前三次就抛出了“正正正”的结果,那对手就获胜了,这种情况发生的概率为 1/8 。但除此之外,只要最开始的三次对手没有获胜,那么我可以说,他已经没有获胜的机会了。因为前三次没有获胜,就说明在他获胜之前一定出现了反面,那第一次出现“正正正”的情况必然包含在如下的结果中:
……反正正正……
可以看到,当出现“反正正”的时候,他已经没有办法再玩下去了,因为那正是我们选择的组合,到这里我们已经获胜了。对于其他组合,这里不再专门讨论了,下面附出一张表格,给出了后选择的人采用正确策略的获胜概率,可以看到,后选择的人获胜的最低概率也是 2/3 。
你是否觉得这个结果有些出乎意料?需要说明的是,在涉及到概率时,我们的直觉很多时候都是错误的。如果你不相信,来看看死理性派的 不要相信直觉!那些概率统计的奇妙结论 是如何颠覆你对世界的认识的吧。
硬币正反不一样
通常我们所说的硬币,都是理想硬币。但由于设计的原因,硬币正反面的花纹并不一样,这就导致了它的实际重心不在正中心上。由于重心有偏向,所以掷硬币时,正反面出现的概率也会有所偏差,想要知道这个偏差具体有多大,难度颇大。幸好花纹导致的概率偏差非常非常小,可以忽略不计。
尽管如此,但万一就遇到了一个死较真的和你玩抛硬币,我们能不能找到一个方法,让真实的硬币达到理想硬币的效果呢?
答案是能。我们可以用下面这种玩法“化腐朽为神奇”:连续掷两次硬币,如果两次结果是相同的(都是正面朝上或都是反面朝上),那就重新再连续掷两次硬币,直到结果不同为止(一次反面朝上,一次正面朝上)。这时, [正,反] 的结果就可以对应掷理想硬币结果为正的情形, [反,正] 的结果就可以对应理想硬币为反的情形(反过来也可以)。
这是为什么呢?假设硬币掷出正面的概率是 p ,那掷出 [正,反] 的概率为 p( 1 - p ) ; [反,正] 的概率为 (1 - p)p。二者相等,所以采取这种方法,即便是一枚非理想硬币,游戏结果也会变成完全公平的。
参考资料
《明知其输而博赢的概率分析》
《科学美国人 趣味数学集锦之二》