zoukankan      html  css  js  c++  java
  • 桶中取黑白球问题

    有一个桶,里面有白球、黑球各100个,人们必须按照以下规则把球取出来:

    1. 每次从桶里面拿两个球
    2. 如果是两个同色的球,就再放入一个黑球;
    3. 如果是两个异色的球,就再放入一个白球。

    问题是:最后桶里面只剩下一个黑球的概率是多少?

    针对这样一个问题,我们有两种不一样的解法:

    方法一:

     

    首先,我们可以通过相应的数学式来建立与上述三个条件等同的表达方式。在这里,我们可以使用集合的概念来表示,如(黑球数,白球数),初始状态为(100,100)。在这里,我们首先从简单的情况入手分析,假设初如状态黑球、白球均含有两个的情况下,也即(2,2)时,我们根据上述三条规则,利用集合表达式来表达三条规则:

    1. 当从中取出两个相同的白球时,可表示为(0,-2),负号表示取走、减少的含义,则应该再添加一个黑球,即(1,0),则最终桶中球的变化为:(0,-2)+(1,0)=(1,-2);
    2. 当从中取出两个相同的黑球时,可表示为(-2,0),负号表示取走、减少的含义,则应该再添加一个黑球,即(1,0),则最终桶中球的变化为:(-2,0)+(1,0)=(-1,0);
    3. 当从中取出黑、白两球各一个时,可表示为(-1,-1), 负号表示取走、减少的含义,则应该再添加一个白球,即(0,1),则最终桶中球的变化为:(-1,-1)+(0,1)=(-1,0);

    从上面三种可能的取球结果,我们很容易总结出下面两条规律:

    • 无论哪种取法,桶中球数总是在不断减少,而且每次总是减少一个球(取两个,放进一个),这样,我们也就可以推测,最终确实会到达桶中只有一个球的状态。当然此时,白球、黑球都有可能。
    • 无论哪种取法,每次白球减少的个数总是只有两种情况,要么不增不减,要么减少两个,不存在只减少一个白球的情况,从上述取球结果中可以得出。

    现在,我们从上述两条规律可以得出结论呢。因为初始状态时,黑、白球个数均为偶数,即100个,根据规律二,最终不可能会出现只有一个白球的情况,而每次球的总数却在每次取球的过程中稳定减少一个,故最终只剩下一个黑球的概率为百分之百。

    方法二:

     

    从问题的三个规则,我们可以联想到使用离散数学中的异或算术表达式,即XOR。因为当取出两个同色的球,就再放入一个黑球,当取出两个异色球时,则再放入一个白球。与异或算术表达式的运算规则完全一样,在这里,我们只需要合理地将黑球将为0,白球设为1,即可。因为根据异或算术表达式,有下面的结果:

    1. (0XOR0)=0
    2. (1XOR1)=0
    3. (0XOR1)=1

    再者,因为异或运算符合结合律,因此无论是何种取法,最终的结果都是唯一的。也就是说游戏的结果与过程无关,只与初始状态黑、白球的个数有关。因为初始状态,黑、白球个数均为偶数100个,因此根据异或表达式,我们很容易得出将这所有的100个黑球(0)和100个白球(1)进行异或运算的结果答案只能是黑球(0)。

     

    使用这种方法,我们也可以得出,不管初始状态,黑、白球的个数如何,最终的结果都是两者异或值。分为三种结果:

    1. 当黑、白两球的个数均为偶数时,异或的结果必然是只剩黑球(0)。
    2. 当黑、白两球的个数均为奇数时,异或的结果必然是只剩白球(1)。
    3. 当黑、白两球的个数一个为奇数一个为偶数时,异或的结果必然是只剩白球(1)。
  • 相关阅读:
    AngularJs 与Jquery的对比分析,超详细!
    身份证号验证,获取户口地址、性别、出生日期
    前端面试·
    页面可见性(Page Visibility API) 可以有哪些用途?
    webSocket如何兼容低浏览器?(阿里)
    如何实现浏览器内多个标签页之间的通信?
    HTML5的form如何关闭自动完成功能?
    Label的作用是什么?是怎么用的?
    cookies,sessionStorage 和 localStorage 的区别?
    浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?
  • 原文地址:https://www.cnblogs.com/JackyTecblog/p/2634741.html
Copyright © 2011-2022 走看看