程式設計之美 桶中取黑白球問題

2021-06-19 13:12:53 字數 1392 閱讀 5584

有乙個桶,裡面有白球、黑球各100個,人們必須按照以下規則把球取出來:

每次從桶裡面拿兩個球

如果是兩個同色的球,就再放入乙個黑球;

如果是兩個異色的球,就再放入乙個白球。

問題是:最後桶裡面只剩下乙個黑球的概率是多少?

針對這樣乙個問題,我們有兩種不一樣的解法:

方法一:

首先,我們可以通過相應的數學式來建立與上述三個條件等同的表達方式。在這裡,我們可以使用集合的概念來表示,如(黑球數,白球數),初始狀態為(100,100)。在這裡,我們首先從簡單的情況入手分析,假設初如狀態黑球、白球均含有兩個的情況下,也即(2,2)時,我們根據上述三條規則,利用集合表示式來表達三條規則:

當從中取出兩個相同的白球時,可表示為(0,-2),負號表示取走、減少的含義,則應該再新增乙個黑球,即(1,0),則最終桶中球的變化為:(0,-2)+(1,0)=(1,-2);

當從中取出兩個相同的黑球時,可表示為(-2,0),負號表示取走、減少的含義,則應該再新增乙個黑球,即(1,0),則最終桶中球的變化為:(-2,0)+(1,0)=(-1,0);

當從中取出黑、白兩球各乙個時,可表示為(-1,-1), 負號表示取走、減少的含義,則應該再新增乙個白球,即(0,1),則最終桶中球的變化為:(-1,-1)+(0,1)=(-1,0);

從上面三種可能的取球結果,我們很容易總結出下面兩條規律:

現在,我們從上述兩條規律可以得出結論呢。因為初始狀態時,黑、白球個數均為偶數,即100個,根據規律二,最終不可能會出現只有乙個白球的情況,而每次球的總數卻在每次取球的過程中穩定減少乙個,故最終只剩下乙個黑球的概率為百分之百。

方法二:

從問題的三個規則,我們可以聯想到使用離散數學中的異或算術表示式,即xor。因為當取出兩個同色的球,就再放入乙個黑球,當取出兩個異色球時,則再放入乙個白球。與異或算術表示式的運算規則完全一樣,在這裡,我們只需要合理地將黑球將為0,白球設為1,即可。因為根據異或算術表示式,有下面的結果:

(0xor0)=0

(1xor1)=0

(0xor1)=1

再者,因為異或運算符合結合律,因此無論是何種取法,最終的結果都是唯一的。也就是說遊戲的結果與過程無關,只與初始狀態黑、白球的個數有關。因為初始狀態,黑、白球個數均為偶數100個,因此根據異或表示式,我們很容易得出將這所有的100個黑球(0)和100個白球(1)進行異或運算的結果答案只能是黑球(0)。

使用這種方法,我們也可以得出,不管初始狀態,黑、白球的個數如何,最終的結果都是兩者異或值。分為三種結果:

當黑、白兩球的個數均為偶數時,異或的結果必然是只剩黑球(0)。

當黑、白兩球的個數均為奇數時,異或的結果必然是只剩白球(1)。

當黑、白兩球的個數乙個為奇數乙個為偶數時,異或的結果這地方結果取決於白球的個數的,白球的個數如果是偶數,則結果就是乙個黑球,白球的個數如果是奇數,則結果就是乙個白球。

程式設計之美 桶中取黑白球

題目 有乙個桶,裡面有白球 黑球各100個,人們必須按照以下的規則把球取出來 1 每次從桶裡面拿出來兩個球 2 如果是兩個同色的球,就再放入乙個黑球 3 如果是兩個異色的球,就再放入乙個白球 解法一 用黑白球各兩個,來模擬,從小到多,化繁為簡,進行分析和推斷,找出其內在的規律,並歸納總結。推斷出 每...

程式設計之美 4 6 桶中取黑白球

題目 有乙個桶,裡面有白球 黑球各100個,人們必須按照以下的規則把球取出來 1 每次從桶裡面拿出來兩個球 2 如果是兩個同色的球,就再放入乙個黑球 3 如果是兩個異色的球,就再放入乙個白球 思路1 找規律 使用 黑球個數,白球個數 來表示桶中黑球和白球的個數變動,正數表示增加,負數表示減少,根據規...

程式設計之美 黑白球問題

題目 有乙個桶,裡面有白球 黑球各100個,人們必須按照以下的規則把球取出來 1 每次從桶裡面拿出來兩個球 2 如果是兩個同色的球,就再放入乙個黑球 3 如果是兩個異色的球,就再放入乙個白球 問 最後桶裡面只剩下乙個黑球的概率是多少?思路1 找規律 使用 黑球個數,白球個數 來表示桶中黑球和白球的個...