用贝叶斯定理解决三门问题并用Python进行模拟(Bayes' Rule Monty Hall Problem Simulation Python)...
三門(mén)問(wèn)題(Monty Hall problem)也稱(chēng)為蒙提霍爾問(wèn)題或蒙提霍爾悖論,出自美國(guó)的電視游戲節(jié)目《Let’s Make a Deal》。問(wèn)題名字來(lái)自該節(jié)目的主持人蒙提·霍爾(Monty Hall)。
?
這個(gè)游戲的玩法是:參賽者會(huì)看見(jiàn)三扇關(guān)閉的門(mén),其中一扇門(mén)后面有一輛汽車(chē),選中后面有車(chē)的那扇門(mén)就可以贏得該汽車(chē),而另外兩扇門(mén)后面則各藏有一只山羊。當(dāng)參賽者選定了一扇門(mén),但未去開(kāi)啟它的時(shí)候,節(jié)目主持人會(huì)開(kāi)啟剩下兩扇門(mén)中的一扇,露出其中一只山羊。主持人其后會(huì)問(wèn)參賽者要不要更換其初始的選擇,選另一扇仍然關(guān)上的門(mén)。
?
那么問(wèn)題來(lái)了,參賽者到底要不要更換其初始的選擇呢?
?
解決這個(gè)問(wèn)題需要用到貝葉斯定理:
?
讓我們選一個(gè)特定的例子來(lái)看看:假設(shè)三扇門(mén)分別為Door A,Door? B,Door C,并且參賽者初始選定了Door A,然后主持人展示了Door? B。那么參賽者是堅(jiān)持選擇Door A還是更換成Door C呢?這就要根據(jù)Door A和Door C哪個(gè)門(mén)后汽車(chē)出現(xiàn)的概率較大決定了。
?
也就是說(shuō),我們需要解決P(Door A=car|Door A is selected,?Door? B is revealed)和P(Door C=car|Door A is selected,?Door? B is revealed)哪個(gè)大的問(wèn)題。
?
首先,每個(gè)門(mén)后有車(chē)的概率都是1/3:
?
其次,如果Door A門(mén)后有汽車(chē),那么Door A被選擇的幾率是1/3,假設(shè)初始選擇了Door?A,那么Door B被主持人打開(kāi)的幾率是1/2:
?
再次,普通情況下,Door A被選擇的幾率是1/3,Door B被主持人打開(kāi)的幾率是1/2(因?yàn)橐呀?jīng)有一扇門(mén)被選擇了,選擇的門(mén)不能被打開(kāi)):
?
同理,如果Door C門(mén)后有汽車(chē),那么Door A被選擇的幾率是1/3,假設(shè)初始選擇了Door?A,那么Door B被主持人打開(kāi)的幾率是1:
?
因此,我們可以看到,P(Door C=car|Door A is selected,?Door? B is revealed)是P(Door A=car|Door A is selected,?Door? B is revealed)的兩倍。也就是說(shuō),更換初始的選擇將會(huì)使我們的獲勝幾率提高2倍!
?
可以用probability?tree來(lái)幫助理解一下:
如果對(duì)上面的計(jì)算公式還有疑問(wèn),那么讓我們用計(jì)算機(jī)來(lái)模擬一下:
from random import randint from random import choiceN = 1000def simulate(N):m=0 #設(shè)置不更換初始選擇贏得汽車(chē)的次數(shù)n=0 #設(shè)置更換初始選擇贏得汽車(chē)的次數(shù)for i in range(N): #模擬1000次游戲win=randint(1,3) #設(shè)置藏有汽車(chē)的門(mén),在1-3之間隨機(jī)選出bet1=randint(1,3) #設(shè)置初始選擇的門(mén),在1-3之間隨機(jī)選出remain=[i for i in range(1,4) if i!=win and i!=bet1] #剩余可選的門(mén)(除去初始選擇的門(mén)和藏有汽車(chē)的門(mén))monty_reveal=choice(remain) #monty會(huì)在剩余可選的門(mén)中選擇一扇門(mén)打開(kāi)bet2=6-bet1-monty_reveal #bet2表示更換初始選擇(用6減是因?yàn)槿乳T(mén)加起來(lái)等于6)if bet1==win: #如果初始選擇和藏有汽車(chē)的門(mén)吻合,那么初始選擇的獲勝次數(shù)+1m+=1if bet2==win: ##如果更換初始選擇的bet2和藏有汽車(chē)的門(mén)吻合,那么bet2的獲勝次數(shù)+1n+=1return n/mprint(simulate(N)) 2.0211480362537766?
最后的結(jié)果: 更換初始選擇獲勝的次數(shù)差不多是不更換初始選擇獲勝次數(shù)的兩倍。
?
三門(mén)問(wèn)題是有些反直覺(jué)的,我們可以這樣來(lái)理解:當(dāng)參賽者選擇Door A時(shí),他的獲勝概率是1/3,當(dāng)主持人展示了Door?B門(mén)后沒(méi)有汽車(chē)以后,這個(gè)信息并沒(méi)有給參賽者的初始選擇帶來(lái)任何有用的信息 ,選擇Door?A獲勝的概率仍然是1/3,但是鑒于選擇Door?B獲勝的概率降為了0,因此選擇Door?C獲勝的概率變?yōu)?-1/3,也就是2/3。
?
參考:https://classroom.udacity.com/courses/st101/lessons/48744119/concepts/484806120923
?
轉(zhuǎn)載于:https://www.cnblogs.com/HuZihu/p/9056224.html
總結(jié)
以上是生活随笔為你收集整理的用贝叶斯定理解决三门问题并用Python进行模拟(Bayes' Rule Monty Hall Problem Simulation Python)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HDU 3555 Bomb
- 下一篇: python全栈-Day 14