问题
题目:有一个桶,里面有白球、黑球各100个,人们必须按照以下的规则把球取出来:
1、每次从桶里面拿出来两个球;
2、如果是两个同色的球,就再放入一个黑球;
3、如果是两个异色的球,就再放入一个白球;
问:最后桶里面只剩下一个黑球的概率是多少?【100%】
思路一:用具体的方法来进行讨论
可以用一个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 如果黑白数量不定?
其实不用在乎球的数量,只需要看最后异或运算的值即可
参考 hold_on2014 文章