汽車山羊問題的分析以及Python和MATLAB模擬實驗
阿新 • • 發佈:2020-12-21
汽車和山羊問題
題目的背景介紹:
現有三扇門,其中一扇門後是一輛車,另外兩扇門後是一頭山羊。
選手從1,2,3號三扇門中選出一扇(僅標記,不開啟),接著主持人再從未標記的兩扇門中選出一扇開啟。
主持人知道每扇門後放的是什麼,所以每次主持人都選擇後面是羊的那扇門開啟。
選手有一次改變自己選擇的機會。
最後,開啟選手最終選中的那扇門,以選手最終選擇的是車為獲勝。
請問選手是否需要改變選擇?
汽車和山羊問題求解
一、對該問題的列舉分析
是否更換 | 選擇幾號門 | 如果車在一號門後 | 如果車在二號門後 | 如果車在三號門後 |
---|---|---|---|---|
# 不換 | 一號 | \(√\) | \(×\) | \(×\) |
二號 | \(×\) | \(√\) |
\(×\) | |
三號 | \(×\) | \(×\) | \(√\) | |
# 換 | 一號 | \(×\) | \(√\) | \(√\) |
二號 | \(√\) | \(×\) | \(√\) | |
三號 | \(√\) | \(√\) | \(×\) |
令更換選擇且成功為事件A,不更換選擇且成功為事件B,那麼顯然我們可以得出二者的概率為:
\[P(A)=\frac{1}{3}\quad\quad\quad P(B)=\frac{2}{3} \]二、對該問題的條件概率概率分析
令更換選擇為事件A,不更換選擇為事件B,顯然
\[P(A)=P(B)=\frac{1}{2} \]1. 如果沒有更換選擇
車在一、二、三號門後分別為事件a、b、c,則
令選擇一、二、三號門分別為事件1,2,3,則
\[P(1)=P(2)=P(3)=\frac{1}{3} \] 那麼顯然沒有更換選擇且成功的概率設為\(P(\alpha)\)就是
\[P(\alpha)=P(1\cap a)+P(2\cap b)+P(3\cap c)=1/9+1/9+1/9=1/3 \] 故\(P(\alpha)=1/3\)
2. 如果更換了選擇
顯然我們可知如果更換選擇,那麼如果剛開始選的是對的則最後是錯的,剛開始選的是錯的則最後是對的
車在一、二、三號門後分別仍設為事件a、b、c,則
\[P(a)=P(b)=P(c)=\frac{1}{3} \]
令選擇一、二、三號門也分別為事件1,2,3,則
\[P(1)=P(2)=P(3)=\frac{1}{3} \] 那麼顯然更換選擇且成功的概率設為\(P(\beta)\)就是
\[P(\beta)=P(2\cap a)+P(3\cap a)+P(1\cap b)+P(3\cap b)+P(1\cap c)+P(2\cap c)\\ =1/9+1/9+1/9+1/9+1/9+1/9=2/3 \] 故\(P(\beta)=2/3\)
三、基於\(MATLAB\)的模擬實驗
先用\(Python\)做了模擬實驗
from random import*
TIMES = 10000
nochange=0 #初始化不改選擇的次數
change=0 #初始化更改選擇的次數
for i in range(TIMES):
Door=randint(0,2) #汽車在哪個門
guess=randint(0,2) #我的選擇是哪個門
if Door==guess: #猜對了
nochange+=1 #不改選擇的次數+1
else:
change+=1 #更改選擇的次數+1
print("不改選擇:{}".format(nochange/TIMES))
print("更改選擇:{}".format(change/TIMES))
# 以下為測試資料
# 不改選擇:0.332 更改選擇:0.668
# 不改選擇:0.3283 更改選擇:0.6717
# 不改選擇:0.331 更改選擇:0.669
# 不改選擇:0.3308 更改選擇:0.6692
# 不改選擇:0.3369 更改選擇:0.6631
可以看到模擬實驗的頻率都穩定在上述分析得出的理論概率附近
另用\(MATLAB\)也做了模擬
n = 100000; %%n代表隨機次數
nochange = 0; %%不改變選擇
change = 0; %%改變選擇
for i= 1 : n %%車在哪個門後
x = randi([1,3],1);
y = randi([1,3],1); %%我的選擇哪個門
if x == y %%選對了
nochange = nochange + 1; %%不改選擇的次數+1
end
if x ~= y %%選錯了
change = change + 1; %%更改選擇的次數+1
end
end
disp(nochange/n); %%輸出不改變選擇時的獲獎概率
disp(change/n); %%輸出改變選擇時的獲獎概率
%%以下為測試資料
%%不改變0.3342 改變0.6658
%%不改變0.3286 改變0.6714
%%不改變0.3351 改變0.6649