一道引起全美大學生舉國辯論的邏輯題原題(引WiZiM)

來源:互聯網
上載者:User

假設你在進行一個遊戲節目。現給三扇門供你選擇:一扇門後面是一輛轎車,另兩扇門後面分別都是一頭山羊。你的目的當然是要想得到比較值錢的轎車,但你卻並不能看到門後面的真實情況。主持人先讓你作第一次選擇。在你選擇了一扇門後,知道其餘兩扇門後面是什麼的主持人,開啟了另一扇門給你看,而且,當然,那裡有一頭山羊。現在主持人告訴你,你還有一次選擇的機會。那麼,請你考慮一下,你是堅持第一次的選擇不變,還是改變第一次的選擇,更有可能得到轎車?

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 一道引起全美大學生舉國辯論的邏輯題 那個文章是我從論壇轉過來的,因為自己想成為程式員,所以比起機率理論,自己更相信程式的結果。

以下轉自CSDN論壇:

lumber(木材)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int main()
{
srand((unsigned)time(NULL));
int count_static = 0;
int count_change  =0;
for (int trytimes = 0; trytimes < 1000000; trytimes++) {
int carroom = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
int selected = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
if (carroom == selected)
count_static++;
}
printf("if you do not change you selection,you can select car %d times in 1000000 times/n", count_static);

srand((unsigned)time(NULL));
for (int trytimes2 = 0; trytimes2 < 1000000; trytimes2++) {
int carroom = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
int selected = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
int del_room = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
while(del_room == carroom || del_room == selected){ //delete room shouldn't be car room and select room
del_room = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
}
int select_again = 1+(int)(3.0*rand()/(RAND_MAX+1.0));

while(del_room == select_again || select_again == selected) {
select_again = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
}

if (carroom == select_again)
count_change++;
}
printf("if you change you selection first,you can select car %d times in 1000000 times/n", count_change);

return 0;
}

 這個代碼的運行結果,能夠說明換了之後贏得汽車的機率是2/3!!比1/2要高。

大家請注意,換了之後贏車的機率2/3~~請大家記住這個真實的,經過程式1000000次隨機測試的結果。想辦法讓自己相信這個答案然後再看下邊的理論分析,不要在短時間否定這個實驗結果!

------------------------------------------------------------------------------------------------------------------------------------------------------

請看理論的論證:

以下雖然也是轉貼,但是自己的想法和這個人的想法出乎意料的一致,為了避免重複勞動,還是選擇轉貼:

jyk(喜歡編程。和氣生財。共同提高。共同進步)

一扇門後面是一輛轎車,另兩扇門後面分別都是一頭山羊。你的目的當然是要想得到比較值錢的轎車,但你卻並不能看到門後面的真實情況。主持人先讓你作第一次選擇。在你選擇了一扇門後,知道其餘兩扇門後面是什麼的主持人,開啟了另一扇門給你看,而且,當然,那裡有一頭山羊。現在主持人告訴你,你還有一次選擇的機會。那麼,請你考慮一下,你是堅持第一次的選擇不變,還是改變第一次的選擇,更有可能得到轎車?

====================

這裡有兩個關鍵點:

1、在你選擇了一扇門後,知道其餘兩扇門後面是什麼的主持人 。

說明主持人是知道正確答案的,他一定會開啟一個關著羊的門,而不是瞎蒙的。

2、更有可能得到轎車?

很明顯,問的是可能性(機率),換和不換哪個機率高!
而不是說換了就一定能得到汽車!

結論:換的機率要比不換的高。

設想一個理想的環境:在特殊平均的情況下,猜三次

換的情況
1、我選中車,主持人開啟了一個羊的門,我換了,結果得到了一隻羊。

2、我選中羊a,主持人開啟了另一個羊的門,我換了,結果得到了車。

3、我選中羊b,主持人開啟了另一個羊的門,我換了,結果得到了車。

我猜三次,有兩次會得到車。2/3

不換 的情況
1、我選中車,主持人開啟了一個羊的門,我沒有換了,結果得到了一隻車。

2、我選中羊a,主持人開啟了另一個羊的門,我沒有換了,結果得到了羊a。

3、我選中羊b,主持人開啟了另一個羊的門,我沒有換了,結果得到了羊b。

我猜三次,只有一次會得到車。 1/3

 

什嗎?你說太絕對了。其實機率就是這樣,才的次數少的時候,很沒有規律,但是當你猜了10萬次以後,你會發現機率就是這樣。

自己最後把理論概括一下:

假如你當時抱著一定換的決心:

第一次選擇時,你如果猜對了汽車(這種情況只有1/3的機率),你卻執意要換,那麼你的第二次選擇將是羊(也就是說“這1/3的第一次選車的機率”變為了“1/3第二次選羊的機率”)。

第一次選擇時,你如果選中了羊(這種情況有2/3的機率),你執意要換,那麼你的第二次選擇的將是車(因為,主持人幫你排除了一個錯誤的答案,也就是“這2/3第一次選羊的機率”變為了“2/3選車的機率”了)。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.