【經典概率題】百囚徒挑戰


起因,這兩天多校概率題挺多的,又不太會做。

剛好學長發了一些概率問題知識就有這個就去了解了一下

有一個很反直覺的問題,叫作百囚徒挑戰。

很多時候,我們都會靠直覺去評價一件事情,但很多時候,我們的直覺是錯的,哪怕感覺有多么准確,而最著名的反直覺問題,就是百囚徒挑戰。

img

問題描述 監獄決定給關押的100名囚徒一次特赦的機會,條件是囚徒通過一項挑戰。

1、所有囚徒被一一編號,編號為1-100。
2、將編號1-100的100個號碼牌,隨機放在100個抽屜。
3、每個囚徒可以打開最多50個抽屜,如果找到對應自己編號的號碼牌,則該囚徒挑戰成功,反之挑戰失敗。
4、所有囚徒全部挑戰成功,該項挑戰才算成功,任意一名囚徒挑戰失敗,則該項挑戰失敗!

囚徒們有一個月的時間去討論策略,那么,這100個囚徒有多大的概率能夠得到釋放?

前三點看起來並不難,但第四條直接將難度直線升級。從直覺來看,每個囚徒完成挑戰的概率就是1/2,而且每個囚徒的挑戰都是獨立事件,所以100個囚徒同時成功的概率就是(1/2)的100次方,這個數,幾乎接近於零!

那么為什么說這個問題是反直覺的?

實際上,這個題目並不是單純的概率題。比如考慮最簡單的情況,囚徒只有兩人,那么他們每人只能從兩個抽屜里選擇一個抽屜打開,這時他們被釋放的概率是1/4嗎?不是。如果兩個囚徒打開不同的抽屜,那么他們被釋放的概率是 1/2,反之如果兩個囚徒打開同一個抽屜,那么他們被釋放的概率是0.

因此,只要囚徒采取了正確的策略,那他們獲勝的概率很大,在人數為100人時,仍舊有 \(30\%\) 那么多。同時,當人數趨於無窮,這個概率不會變得更小,而是趨近於 \(1 - ln\ 2\) !!

下面開始解釋為什么概率是趨近於 \(1 - ln\ 2\)


解答的細節來自知乎的大佬 Yuz.Scarlet

不妨假設抽屜里的號碼牌是隨機放置的(否則,囚徒可以自己在腦內打亂所有抽屜的位置以達到同樣的效果※),之后囚徒首先為抽屜編號,例如從左上到右下依次編號。而每個囚徒的策略,就是首先打開與自己編號相同的抽屜,從中取出號碼牌,並打開號碼牌所對應的抽屜。之后,重復此過程,直到找到自己的號碼牌,或者50個抽屜的機會用完。

例如,29號囚徒首先打開了29號抽屜,里面放着51號的號碼牌,於是他打開51號抽屜,里面放着18號的號碼牌,於是他打開18號的抽屜,里面放着29號的號碼牌,他完成了任務。(只是隨便舉例)(※※)

為了計算成功概率,首先對這個游戲進行化簡。將抽屜與號碼牌的對應關系視為一個映射,例如 \(f(29) = 18,f(51) = 18\) ,那么從任意一個數出發,不停地迭代計算,最終總能回到這個數。通過這種方法,\(1\) ~ \(100\) 的數字被分割為了一些“圓環”,而每個圓環的長度不一,比如 \(3 \to 3\) 的長度就是1,意味着3號抽屜里裝着3號號碼牌, \(29 \to 51 \to 18\to 29\) 的長度是3;這時,我們發現,所有囚徒能夠通過挑戰,當且僅當所有圓環的長度不超過50,此時顯然每個囚徒都能在50次以內找到自己的號碼牌,反之如果有一個圓環長度超過50,那么這個圓環上的所有人都會失敗。

接下來就是計算了。比起計算“所有圓環的長度不超過50”的概率,“有一個圓環長度超過50”的概率更容易計算。因為“有一個圓環的長度是51”和“有一個圓環的長度是52”之類的事件是彼此互斥的(圓環的長度總和是100),所以總概率就是它們的和。而對於 \(m \ge 51\) ,只需先選出 \(m\) 個元素,將它們構成一個環,之后再將剩下的元素隨機打亂即可唯一地得到一種分布。

具體地說,所有形成長度為 \(m\) 環的映射種類為 \(C_{100}^m * (m-1)!*(100 - m)! = 100!/m\) ,全排列個數為 \(100!\) ,因此這個概率等於 \(P(m) = 1 / m\)

綜上,所有圓環長度不超過50的概率等於 \(P = 1 - \sum\limits_{m = 51}^{100}\frac 1m ≈ 0.312\) ,這個概率就是囚徒被釋放的概率。當囚徒人數趨於無窮大時,概率趨向於 $ P = 1 - \sum\limits_{m = N + 1}^{2N}\frac 1m ≈ 1-ln\ 2$

Seg-Static

不那么嚴密地說,這個策略的關鍵點在於讓所有囚徒盡可能地一起成功或者一起失敗,因此所有玩家的任務不再是獨立的,一旦有一個人成功,他所翻出的號碼牌對應的人也一定會成功,同時只要有一半的人成功,剩下的人都一定成功。

通過計算可得,在之前所有人都成功的條件下,下一個人成功的概率依次為

\[50\%,75.25\%,89.26\%,95.63\%,...... \]

這個策略被證明最優。

Seg-Static

※否則,囚徒可以自己在腦內打亂所有抽屜的位置以達到同樣的效果
因為在挑戰開始之前有一個月時間商討對策,所以囚徒可以在這段時間內約定好隨機打亂抽屜的方式。另外,如果擔心囚徒的策略被獄警知曉,也可以考慮迪菲赫爾曼密鑰交換(前提是P≠NP),這是一種大聲說悄悄話的方法,具體做法是利用非對稱算法,使得兩個沒有任何共同知識的人知曉一個共同的關鍵詞,並且任何竊聽者無法通過兩人的對話推理出這個關鍵詞,之后這個關鍵詞可以作為加密的秘鑰使用。

※※另外直觀地解釋一下這個策略的含義,這里以10個人的情況舉兩個例子。

假如說10個抽屜與號碼牌的對應關系如下:
1號抽屜→5號牌
2號抽屜→7號牌
3號抽屜→3號牌
4號抽屜→2號牌
5號抽屜→9號牌
6號抽屜→10號牌
7號抽屜→4號牌
8號抽屜→8號牌
9號抽屜→1號牌
10號抽屜→6號牌

1號囚徒首先打開自己的編號對應的抽屜即1號抽屜,取出5號號碼牌,接着打開5號抽屜,取出9號號碼牌,接着打開9號抽屜,取出1號號碼牌,完成任務;
2號囚徒首先打開自己的編號對應的抽屜即2號抽屜,取出7號號碼牌,接着打開7號抽屜,取出4號號碼牌,接着打開4號抽屜,取出2號號碼牌,完成任務;
……
10號囚徒首先打開自己的編號對應的抽屜即10號抽屜,取出6號號碼牌,接着打開6號抽屜,取出10號號碼牌,完成任務;

就這樣,在這種對應關系下,所有囚徒都完成了任務;

假如說10個抽屜與號碼牌的對應關系如下:
1號抽屜→2號牌
2號抽屜→8號牌
3號抽屜→5號牌
4號抽屜→6號牌
5號抽屜→1號牌
6號抽屜→4號牌
7號抽屜→10號牌
8號抽屜→9號牌
9號抽屜→3號牌
10號抽屜→7號牌

1號囚徒打開1號抽屜,取出2號號碼牌;打開2號抽屜,取出8號號碼牌;打開8號抽屜,取出9號號碼牌;打開9號抽屜,取出3號號碼牌;打開3號抽屜,取出5號號碼牌;任務失敗
4號囚徒打開4號抽屜,取出6號號碼牌;打開6號抽屜,取出4號號碼牌;任務成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM