乙個遊戲中的條件概率問題

2022-04-15 12:47:17 字數 3566 閱讀 2651

假設你在進行乙個遊戲節目。現給三扇門供你選擇:其中一扇門後面是乙個大獎(比如奧迪r8),另兩扇門後面神馬都沒有。你不是託,所以你的目的當然是拿大獎,但是你顯然不知道門後面是啥東東。主持人(雖然ta知道門後面都是啥,但ta就是不告訴你)先讓你做第一次選擇。在你選擇了一扇門後,主持人並沒有立刻開啟這扇門,而是開啟了另外一扇木有獎的門給你看。現在,主持人告訴你,你有一次重新選擇的機會。那麼,請你思考一下,你是堅持第一次的選擇不變,還是改變第一次的選擇?哪種做法更有可能中大獎?

這個問題貌似很簡單:主持人排除一扇沒獎的門之前做選擇是三選一,得獎的概率是1/3,而排除之後是二選一,得獎的概率是1/2,顯然1/2 > 1/3,所以換了得獎的機會更大。

但其實這個演算法是不完全正確的。堅持第一次的選擇不變,獲獎的概率的確是1/3;但是改變第一次的選擇,獲獎的概率不是1/2,而是2/3!

你信麼?

不信的同學不妨先看看窮舉法得到的結果:

a b c

y n n

1 2 x

2 1 x

2 x 1

注釋:a,b,c代表三扇不同的門;y表示此門有大獎,n表示此門木有獎;1表示第一次的選擇,2表示第二次的選擇;x表示這扇門被主持人排除而不能把戲演到底。

若是堅持第一次的選擇不變,那麼就只看帶有1的部分:在三個1裡面,跟y一列的(即中獎的)只有乙個,因此獲獎概率是1/3。

若是改變第一次的選擇,那麼就只看帶有2的部分:在三個2裡面,跟y一列的有兩個,因此獲獎的概率是2/3,而不是1/2。

這個窮舉法有個條件:裡面的1不能出現在相同的行(這種情況違反邏輯),也最好不要出現在相同的列,這樣才能保證每乙個1的概率都相等,不然查個數算概率的基礎就錯了。

實際上,這是乙個「條件概率」的計算。你先任意選擇一扇門,每扇門被選中的概率都是1/3,然後基於你的選擇這個前提條件,主持人再選擇一扇門。倘若你第一次選了一扇沒有獎的門,那麼,主持人選擇一扇沒有獎的門的條件概率是1,聯合概率是1/3;倘若你第一次選了一扇有獎的門,那麼主持人選擇一扇沒有獎的門的條件概率是1/2,聯合概率是1/3*1/2=1/6。所以,不換的中獎概率是1/6+1/6=1/3,換的中獎概率是1/3+1/3=2/3 。

喂神馬會是這樣?喂神馬是2/3而不是1/2?因為除了主持人排除了一扇門這個明顯的限制條件之外,還有乙個隱含的限制條件:改變第一次的選擇。就是說,只要你改變第一次的選擇,那麼你就不是在剩下的「兩」扇門中間做選擇,你只有唯一的一扇門可選了。這個時候,你更像是跟之前的自己作對:如果之前你的選擇有1/3的概率中獎,那麼此時改變選擇之後,你就有1/3的概率與大獎擦肩而過;如果之前你的選擇有2/3的概率落空,那麼此時改變選擇之後,你就有2/3的概率把大獎抱回家。(看出來這兩句話是一句話的同學,恭喜你!你可以去參加這類遊戲了!)

說到這裡,不論你明沒明白,我都要接著說。沒準你再往下看一點就明白了。

如果把三扇門擴大到四扇門會是神馬情況?

a b c d

y n n n

1 2 x 2

2 1 x 2

2 x 1 2

2 2 x 1

用上述數數的方法可知,堅持第一次選擇不變的獲獎概率是1/4,而改變第一次的選擇的獲獎概率是3/8,不是1/3=3/9(喂神馬這麼寫?且看下文**處)。很明顯,主持人排除一扇門,並且你改變先前的選擇之後,你只有(4-1-1)扇可以真正自由選擇的門(而不是3扇),它們的概率相等,都是1/(4-1-1)=1/2。若想獲獎,則你的第一次選擇必須是錯誤的、沒獎的,這個概率為(1-1/4)=3/4。因此,改變第一次的選擇並且獲獎的概率是(3/4)*(1/2)=3/8。

若繼續往下推算,五扇門的情況是:不改變選擇的獲獎概率是1/5,改變的獲獎概率是(1-1/5)*=4/15,而不是1/4=4/16。

六扇門的情況是……你自己去問郭芙蓉她爹郭巨俠吧!

另外,你不用擔心到27扇門的時候沒有英文本母來代表門(注意,我沒提代表們),因為當你研究到14扇門的時候,你會發現,原來這就是n扇門的情況啊!這對於試圖用上述窮舉法繼續往下研究的同學來說真是個福音啊!

用數學歸納法可證得(不需要其它的高深數學技能,有性趣的同學可用手自行解決),n扇門的情況是,堅持不變的中獎概率是1/n,改變的中獎概率是(1-1/n)*=(n-1)/。其中,n是大於等於3的正整數。(**處)這裡另外的一種歸納是:(n-1)/=(n-1)/。

顯然,(n-1)/(n-2)>1,所以改變第一次的選擇而中獎的概率大於堅持第一次選擇的中獎概率。因此,以後你參加這種犯賤的遊戲時,原則就是一定要換!

說到這裡,如果你還沒明白,請回到六扇門那兒重新來過。

把上面的問題再推廣一點,我們可以得到乙個更平凡的結論:

給你n扇門,其中m個是有獎的,其餘沒獎,你先選一扇,然後主持人開啟另外l扇沒有獎的給你看,再讓你重新選一扇門。此時,堅持不換門而獲獎的概率是m/n;換另外一扇門而獲獎的概率是/。其中,n,m,l均為正整數,且n>2,(m+l)怎麼得到的?可以這樣理解:顯然第一次選擇的獲獎概率是m/n,那麼改變第一次的選擇意味著拋棄了這m*(m/n)個大獎,還剩下個大獎。你要在(n-l-1)個剩下的門中選乙個,這時的中獎概率自然是/(n-l-1)=/。

這種情況下,究竟怎樣才能獲獎就要看(l+1)和m誰大了。當l+1比m大時,改變先前選擇而獲獎的概率更大;反之,當l+1比m小時,堅持原來的選擇中獎概率更高;若l+1=m,則換不換無所謂,概率是相等的。

最後,我再說一點(你能堅持到這裡表明你真的很理性),這裡還可以再引申出乙個更更平凡的推論,即第一次可以選擇k扇門,而第二次可以選擇j扇門,其中k+j+l則堅持第一次選擇不變的中獎概率是:

1-(1-m/n)^k

而改變第一次選擇的中獎概率是:

1-^j,其中,z=(1-m/n)^k

這個時候到底是換還是不換?who特麼knows!

好了說了這麼多了,喝杯水捋一捋思路,這不口說無憑,要不上個**測試一下:

#include #include #include //有三扇門,其中一扇門裡有獎品,三選一,你選擇其中一扇門之後

//主持人先不揭曉答案,而是從另外兩扇門中排除掉乙個沒有獎品的門

//現在主持人問你,要不要換個門,請問你換還是不換?

9 //測試(總次數, 換門)

void test(int max, int change);

//入口函式

void main()

//測試(總次數, 換門)

void test(int max, int change)

}//測試(總次數, 換門)

void test(int max, int change)

{ //max 次數:測試的總次數

//change 換門: 0不換 1換門

int i; //迴圈因子

int m; //目標:本次中獎的目標數字

int c; //初選:本次選手初次選擇的數字

int x; //選擇:本次選手最終選擇的數字

int p; //排除:主持人排除掉沒獎的數字

int z = 0; //中獎:中獎的總次數

//迴圈多次模擬換門測試

for (i=0; i

欺詐遊戲中的乙個概率問題

這幾天看 欺詐遊戲 為漫畫裡設計的各種情節深深震撼。如果自己進入遊戲中妥妥的被騙還要幫人數錢。看到第三卷時,女主角被騙參加一場賭博。簡化模型如下 雙方多輪對賭,每輪女主角贏的概率為1 3,對方贏的概率2 3,先贏10場者為勝利者。最終女主角輸了。請問女主角贏這場賭博的概率是多少?一開始就覺得女主角會...

乙個概率問題

有三個盒子,其中乙個盒子裡面是大獎,另外兩個盒子是空的,你選中其中乙個,在你開啟這個盒子之前,主持人開啟了剩下兩個盒子當中的乙個,空的。2018 8 3 9 25更新,由於頭天晚上憑藉記憶手打,此處描述有不嚴謹,在此更新 主持人知道哪乙個盒子裡面有大獎,開啟了必定空的乙個盒子。問,你是繼續堅持一開始...

遊戲中的UI問題(一)

ui不光是體驗,還會帶來很多b類以上的問題。簡約的ui和有沒有問題沒關係,以下是一些問題,可以面對他們做行為的邊界檢查。自定義的控鍵拖動到另一些自定義控鍵上,當過程中會調出tips,滑鼠指標變換,很容易出ui邊界問題。ui邊界 窗體外部至內,客戶端容易假死。多版本客戶端切換更新情況下,載入時和登陸u...