首页 >> 数学 >> 文章

硬币中的不可思议Comments>>

发表于 2015-01-19 14:39 | Tags 标签:, ,

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

硬币正反不一样

如果硬币两面是完全一样的,显然掷出正面或者反面的可能性是均等的。我们常说,正反面出现的概率都是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期

0
为您推荐

17 Responses to “硬币中的不可思议”

  1. 慢慢叫说道:

    唾手可得……

  2. Jingtao说道:

    以人民币一元硬币来说,正面是代表面额的1字,反面是菊花

    --再也无法直视摞成一摞的硬币了

  3. bobcy说道:

    还可以抛硬币来作曲,比如凯奇。不过我觉得最有用的技能是:在国外问答网站quora上看到有人问:“当你进退两难的时候如何做出决定?”下面有人回答:“抛硬币,当你第一次抛了以后想再抛一次的时候,你就已经知道答案了。” 新技能get √

  4. 小月魂传奇说道:

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

    我认为这个概率不是p(1-p),假设刚开始你取的是正面,也就是p,但接下来你只要反面的,也就是说在接下来的结果就被你人为的限定必须是反面,不是反面的抛弃,也就是出现反面的结果必须是1,综合起来,这两次的最终结果仍然是p。问题依旧没解决公平。

    • xys说道:

      他说的意思是:掷之前先决定是选正反,还是反正。而不是:第一次掷硬币之后还有机会做选择。或者等价于:有两个硬币(比如一个1分的,一个2分的),看结果是正反还是反正。如果正正或反反就重新来过。

      这个方法隐含的条件是:一个硬币掷两次(或者掷两个硬币)的结果是统计独立的,或者减弱一下就是:二维分布函数是对称的。此方法把硬币两面不对称的问题转化为两次掷硬币的对称问题,后者看上去似乎更容易满足。

    • Roman说道:

      动动脑子

    • Raman说道:

      "要知道具体的获胜策略,目前还只能借助计算机的力量。所以,比起尼姆游戏,“大嘴巴”更有趣更复杂,更适合跟朋友一起玩。"
      图是回复这个的。很适合一起玩。lol

  5. 将就看懂说道:

    是打算给小读者的吗?还能更形象活泼些吗?

  6. lfine说道:

    有一种类似的尼姆游戏,每堆3,5,7。但规则是拿最后一只硬币者输。结果是先手赢。

  7. 无虞说道:

    Chomp游戏,先手先把最终的硬币右下角那枚给拿掉,之后一直保持第一列和第一行的硬币数相等就好;
    若只有一行(列),则使其仅剩第一枚,其余全部提掉便好;
    若只有一个……额。

    • 无虞说道:

      不过不知道具体规则是否允许如此。。。。。

      • 方弦说道:

        ……那如果第一列和第一行不等的时候怎么办……

  8. 1610079130说道:

    我认为留给小读者思考的尼姆游戏的定局是:两堆硬币数量相等则先手必输 数量不等则后手必输

  9. 低哦你说道:

    3,4,5。这个不算难~~可以玩6,8,10.

  10. 方程说道:

    关于Chomp「先手必不输」的证明,以前在加德纳的书里读过:
    已知游戏存在必胜策略。假设后手有必胜策略,先手可以拿走最右一列或最下一排,使后手面对的是一个规模较小的「初局」,成为形式上的「先手」。这就跟「后手必胜」矛盾了。
    附上维基的对应解释:http://en.wikipedia.org/wiki/Chomp#Who_wins.3F

    这也是一条定理:任何信息对称的博弈,若先手能令「第一步」之后局面仍是「初局」,则这类博弈不存在「后手必胜」策略。
    定理的维基以井字棋为例:
    http://en.wikipedia.org/wiki/Strategy-stealing_argument

    • Illusiwind说道:

      “先手可以拿走最右一列或最下一排”这句是错的。维基的解释你没看懂。