来自《编程之美》的概率题:一个桶里面有白球、黑球各100个,现在按下述规则取球

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

1、每次从桶里面拿出来两个球;

2、如果是两个同色的球,就再放入一个黑球;

3、如果是两个异色的球,就再放入一个白球;

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


思路一:用具体的方法来进行讨论


可以用一个set(黑球,白球)来表示桶中的黑球和白球的输入

根据规则,拿出两球放入一球,每次操作桶中的球都会少一个,所以数目应该是可控的。

定义相应的数学关系表示操作:

(-2,0)+(1,0) = (-1,0)  取出两个黑球,放入一个黑球,最后相当于取出一个黑球,依此类推

(0,-2)+(1,0)=(1,-2)

 (-1,-1)+(0,1)=(-1,0)

从上述推断可以看出:

1  每次操作都会减少一球,所以最后剩下黑球或者白球

2 由于白球每次操作要么不变,要么成对减少,所以最后不可能剩余一个白球,那么必然是剩余黑球了


实践操作,可以以(2,2)做一次演示

第一次操作后的情况为(1,2)或者是(3,0)

对于(1,2)第二次操作后的情况为(2,0)或者(0,2)

对于(3,0),第二次操作后的情况为(2,0)

第三步操作无论哪种情况,随后都只能为(1,0)


思路二:用抽象的方法来解决

根据上述条件,可以用异或的方法来解决:

两个同色的球,放入一个黑球,所以让黑球为0,白球为1

对每次操作其实就是捞出两个数做一次异或操作,然后将所得的结果(1或者0)丢入桶中,这样操作的过程不会改变所有球权值的异或值


异或满足结合律或者交换律,所以取球的过程就是对所有的球进行异或,就是100个1和100个0的异或过程


因此,剩下一个球的时候,桶中的权值等于厨师时刻所有球权值的异或值,也就是0,所以剩下一个球一定是黑球


实践:依然以(2,2)为例说明  所以黑球2个就代表2个数字0  白球2个代表有2个数字1

那么就是0 0 1 1

假设先取出2个白球 1 XOR 1 = 0  所以此时结果为0 0 0

取出2个黑球  结果就是0 XOR 0 = 0   所以此时结果为0 0

最后再取出两个黑球  异或结果是黑球


总结:分析复杂问题,最有效的方法就是通过简单的例子进行分析,然后根据归纳出的结论分析结果。适当的数学抽象在解决问题的过程中往往有华龙点金的作用


拓展问题:1 如果桶中黑白球各为99个  结果如何?

     根据前面的总结可知,只需要对所有数字进行异或,结果为1,所以最后剩一个白球

                   2 如果黑白数量不定?

    其实不用在乎球的数量,只需要看最后异或运算的值即可


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值