2015
01.20

硬币中的不可思议

本文作者:方弦

硬币除了可以买东西,也可以用来解决各种争端。据说,遇到不可调解的分歧的时候,为了作出决定,人们的首选是猜拳,其次是抛硬币。足球场上开球方的决定,习惯上也是用硬币决定的。除此之外,硬币作为垂手可得的小道具,也能玩出各种花样的小游戏。对于这些小游戏,你又知道多少呢?

硬币正反不一样

如果硬币两面是完全一样的,显然掷出正面或者反面的可能性是均等的。我们常说,正反面出现的概率都是0.5。那么,这里的“概率”是什么意思呢?

如果我们不停地投掷硬币,并记录下每次的结果,我们会发现正面出现的数量大约是全部的一半。投掷的次数越多,“出现正面”所占的比例就越接近0.5。这就是概率的含义:如果在许多次独立的试验中,某个特定的事件发生的比例会逐渐趋近一个特定的数值,那么这个数值就被称为这个特定事件的概率。

我们可能觉得掷硬币时,正反面出现的概率是一样的,其实不然。由于设计的原因,硬币正反面的花纹是不一样的,从而也导致了重心与中心的微小偏差。以人民币一元硬币来说,正面是代表面额的1字,反面是菊花,重心稍微偏向反面;欧元就更麻烦了,不同的铸币厂会铸出不同的背面花纹,重心偏向也因这些花纹而异。由于重心有偏向,所以掷硬币时,正反面出现的概率也会有些偏差。幸好花纹导致的概率偏差非常非常小,在日常生活中往往可以忽略不计。

Euro_coins_version_II_big1

【欧元硬币图案一览】

尽管可以忽略不计,但有没有办法修正这个偏差呢?换句话说,能不能找到一个方法,让有偏差的硬币产生无偏差的结果呢?

假设某枚硬币掷出正面的概率是p,我们用以下的方法产生抛硬币的结果:掷两次硬币,如果两次的结果相反的话,取后掷出的为结果;否则重新掷两次。更具体地说,如果结果是“反正”的话,那就当作掷出了正面,如果是“正反”的话,那就当作反面,如果是“正正”或者“反反”的话,那就重新再来。这样的话,在一次尝试中,结果为正面和反面的概率都是p(1-p),结果是完全公平的。

正反抵消不容易

掷100次硬币,正面和反面相差多少次呢?1000次呢?10000次呢?现实中的硬币,掷出正反面的概率略有偏差,但差别之小可以看作相同。你可能会觉得,掷出正面和反面的数目有很大概率是相等的。但事实如何?

虽然根据概率论中的大数定律,正反面出现次数的比应该很接近1,但这不代表正反面数目刚好抵消的概率很大。打个不太恰当的比方,地铁相对来说是很准时的,但是要它一天提前或者延误的时间刚好抵消的话,还是相当困难的。尽管得到正面和反面的概率相同,但是要它们恰好相互抵消,这也需要一点运气。稍稍用点数学知识可以知道,抛2n次硬币,恰好有n次正面n次反面的概率大概是 1/\sqrt{n\pi} 。当n越来越大,这个概率越来越趋近0。也就是说,虽然正反面出现的概率相同,但是它们恰好相等的概率会随着抛硬币的总次数变低,最后越来越接近0。

所以说,在表达数学问题时,一定要用精确的语言。意思上一点点微小的变动,也会产生截然不同的结果。我们说投掷硬币时出现正面的概率是0.5,说的是在许许多多次投掷后,结果中正面所占的比例会非常接近0.5,投掷次数越多,比例越接近0.5。但这并不是说比例会非常凑巧地稳稳停在0.5。实际上,在很多情况下,这个比例会不停地在0.5周围浮动,但浮动的幅度会越来越小,也会越来越靠近0.5。某几次投掷之后正面恰好占一半,这种情况发生的机会反而很小。

谁先谁后轻松选

如果你跟你的小伙伴一起玩游戏要决定谁先谁后的话,抛个硬币是个很好的解决方案。但是如果小伙伴不止一位的话,单靠硬币可能就不太容易解决问题了。如果要从四个人里公平地挑出一个,掷两次硬币,将四种不同的结果(正正、正反、反正、反反)分别指派给每个人,掷出哪种结果就选哪个人,这种方法还是挺方便的。但如果只有三个人呢?

三个人的时候,有一种比较显而易见的解决方法:同样掷两次硬币,将正正、正反、反正三种结果指派给三个人,如果掷出的结果是指定的结果之一,那么就选出对应的人;否则,如果运气不好掷出“反反”的话就重新开始另一轮硬币的投掷。显然这种方法保证了公平性,因为在每轮掷硬币中,每种结果出现的概率是相同的。但会不会运气不好,一连好几轮都掷出“反反”,需要重新开始?

我们可以算一算。每一轮掷出“反反”重新开始的概率恰好是1/4,而n轮都出现如此情况的概率是1/4的n次方,当n越来越大的时候,这个概率很快地会变得越来越小。直观看来,一轮不能决出结果的概率也不高,所以大概不需要拖上很长时间。更严格的计算表明,用这种方案从三个人中选出一个,平均只需要投掷8/3次硬币就能完成,算上来大约比两次多一点点,说明这种方法还是很有效的。

实际上,这种方法可以推广到任意人数,而且也能证明,平均需要投掷硬币的次数一定不会太多,随着人数增长,平均投掷次数也会增长,但是要缓慢得多。

尼姆游戏有乾坤

硬币除了能解决分歧,还能用来玩玩游戏。其中一种游戏非常有名,叫“尼姆游戏”。这个游戏的玩法很简单,先将硬币分成几堆,然后两个人轮流取硬币,每次取硬币只能从同一堆中取出,枚数不限,但至少要取一枚,取走最后一枚硬币的就是赢家。

jpilpv

尼姆游戏很流行的一个版本,图片转载自这里

比如说,甲乙二人玩这个游戏,开局有三堆硬币,分别有3、5、7枚。甲先取走第二堆中的4枚,每堆剩下3、1、7枚,接下来乙取走第三堆的所有硬币,剩下的就分别是3、1、0枚。接下来甲只要取走第一堆中的2枚,留给乙的就是各自有一枚硬币的两堆。这时,乙只能取走其中一堆,而甲只需要拿走剩下的一堆就能获胜。

从这个例子能看出来,尼姆游戏中没有运气的成分,每位玩家都能看清整个局势,而玩家能采取的行动也是一样的,区别只是在于一位先攻而另一位后守。在博弈论这一研究游戏取胜策略的数学分支中,这样的游戏被称为无偏博弈。也正是博弈论中的一个定理,赋予了尼姆游戏一个非常特殊的地位:任意给定一个无偏博弈,它都对应一个推广了的尼姆游戏的特例。可以说,尼姆游戏中包含了所有的无偏博弈,比如象棋、围棋等,尽管这些更为复杂的游戏,它们对应的尼姆游戏特例中可能有很多堆硬币,每堆硬币可能会很多,甚至有无穷枚,需要用更为抽象的“序数”来描述。

让我们回到普通的尼姆游戏中。在之前的例子中,如果甲乙双方都依照最好的策略来玩尼姆游戏,哪一方将会胜出,而胜者需要采取怎么样的策略?这个问题就留给小读者们思考了。给个提示:最优策略与二进制有关,如果只有两堆硬币的话,获胜者与策略都比较明显,如果有三堆甚至更多的硬币的话,从简单的情况开始,试验一下,再观察一下,将每堆的数量用二进制写出来,到底满足什么样的条件,先走者会胜利呢?

硬币阵列需策略

另一种与尼姆游戏很相似的硬币游戏叫“大嘴巴”,英语里叫“Chomp”。尼姆游戏的战场是一堆硬币,而“大嘴巴”的战场则是排成长方形阵列的硬币。规则与尼姆游戏非常类似:一开始桌面上摆放着m×n的长方形硬币阵列(比如说5×7),两人轮流取硬币,每次指定桌面上剩下的硬币之一,然后将这枚硬币以及它右下方的所有硬币都取走(包括正右方与正下方),阵列左上方的硬币是特殊硬币,谁拿到手谁就输掉整场游戏。

QQ20150119-1

【3 × 5的大嘴巴游戏过程举例,图片出自维基百科

虽然“大嘴巴”与尼姆游戏非常相似,但它们的性质相当不同。对于尼姆游戏而言,在不同的开局中,能取胜的玩家也不同,有的是先手必胜,有的是后手必胜,而且策略很容易算出来。但对于“大嘴巴”而言,除了一开始只放一枚硬币的开局,对于所有开局来说,都是先手必胜。虽然证明并不复杂,但并没有给出具体的获胜策略。要知道具体的获胜策略,目前还只能借助计算机的力量。所以,比起尼姆游戏,“大嘴巴”更有趣更复杂,更适合跟朋友一起玩。

叫上你的小伙伴,拿上一把硬币,立刻探索一下简单游戏的朴素乐趣吧!

关于

本文是果壳网《超好玩硬币游戏,你都会玩吗?》的扩展,已发表于《十万个为什么》杂志2014年12期



暂无回复

添加回复
回到顶部

无觅相关文章插件,快速提升流量