歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python實現蒙提霍爾問題

Python實現蒙提霍爾問題

日期:2017/3/1 9:47:27   编辑:Linux編程

為了體現專業,我在標題處用了一個高端大氣上檔次的英文名字來描述此問題,實際上這個問題有個土鱉名字,叫羊車問題或者三門問題。

像我這種博學多識的高科技人才,長這麼大還是頭次聽說這麼高深的問題。所以為了繼續保持我的博學多識,我決定深入研究下。

最近的python課上,老師提出用python還原三門問題。並探討下“選擇換門”還是“堅持選擇”的概率性。

先用代碼實現功能:

#coding:utf-8 importrandom #構建三扇門 door1=1 door2=2 door3=3 #構建門後的車 car=random.randint(1,3) #開掛。。提示車子在哪扇門後面 #print "car is in the door"+str(car) #輸入一扇門對應的數字 pick1=raw_input("please pick one of the doors: ") pick1=int(pick1) #按照原版的孟缇霍爾問題,第一次不論你選擇對還是錯,主持人都會按照套路出牌:“你確定嗎?真的不改了嗎?你他媽為何這麼自信?!” #if pick1 == car: # print "you got the car!" #不管你第一次選擇對錯,主持人都會給你打開一扇錯誤的門,然後讓你二選一 #else: while1: kick1=random.randint(1,3) kick1=int(kick1) ifkick1!=car andkick1!=pick1: print"now kick a sheep door:door"+str(kick1)+",please try again" pick2=raw_input(": ") pick2=int(pick2) ifpick2==car: print"you got the car finally!" break else: print"you got wrong!" break

此後我在這個程序的基礎上做了修改,分別自動執行100遍兩種選擇,並記錄結果。統計如下:


太自信的結果,100次只猜中了29次,猜錯71次。


有些時候主持人還是靠譜的,中獎率66%。

過後的幾天我把這個問題分享給公司同事,在沒經過用心思考的情況下(其實沒差,我相信他們用不用心都答不對的- -),他們幾乎都覺得兩種結果應該都是50%的猜中概率,只有數值策劃,他想了一會說概率應該不一樣。而且和我講什麼幾率論(夠了我根本聽不懂。。

後來我用自己的理解,解釋了一下為什麼概率是1/3和2/3。不一定對,但是我覺得很容易理解:

A,B,C三個門,第一次任意選,選中的概率是1/3,這一步是毋庸置疑的。

A B C
1/3 1/3 1/3

如果我們選擇A,中獎概率是1/3
假如我們把B和C看做一個整體‘BC’,那麼‘BC’的中獎概率是2/3,主持人剔除一個錯誤的答案,前提是他不會剔除你選擇的那個門,其實就是幫我們把B和C變成了一個整體,這樣,A的概率還是1/3,轉而選擇‘BC’,則概率為2/3。

通過一步步的深入研究,我發現這個問題在一部based on a true story電影《決勝21點》中也有提及,說來慚愧,對於一個在棋牌游戲公司打工的人來說,我對這種數學概率論知識近乎殘障。。所以我決定開始惡補數學,請問哪能下載《決勝21點》?

延伸閱讀:

1.據說全世界智商最高的女人—Marilyn vos Savant,在她的雜志專欄中聲稱三門問題中選擇更換後猜中的概率更高。結果在美國引發了各種專家學者的聲討:人們寄來了數千封抱怨信,很多寄信人是科學老師或學者。一位來自佛羅裡達大學的 讀者寫道:“這個國家已經有夠多的數學文盲了,我們不想再有個世界上智商最高的人來充數!真讓人羞愧!”另一個人寫道:“我看你就是那只山羊!”美國陸軍 研究所的埃弗雷特·哈曼寫道,“如果連博士都要出錯,我看這個國家馬上要陷入嚴重的麻煩了。”

2.如“英特爾芯片”神准算牌能力的華裔“賭聖”—馬恺文(Jeff Ma),《決勝21點》這部電影就是根據他的故事改編。

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved