<style>
.red {
color: red;
}
.blue{
color:blue;
}
</style>
# 三門問題

你今天參加了參與了一場遊戲,看到了三扇關起來的門。
這三扇門中有其中一扇後面有一台車子,令外兩扇後面各有一隻山羊。
接著主持人請你選擇一扇門,若是選中的門打開後是車子,則可以將車子開回家,
反之則是拿不到任何東西。
在你跟主持人說好你決定選擇了哪一扇門之後,主持人此時刻意打開了另外兩扇中後面有著山羊的一扇門,山羊對你咩了一聲,:goat: 咩~~~
<img src="https://hackmd.io/_uploads/SJVyqPnOh.png " style="display:block; margin:auto; center; width:50%" />
<br>
接著主持人說他給你一次機會重新讓你從兩扇門中做選擇,
**<span class=red> <font size=5>此時睿智的你會照舊,不改變原先的選擇,還是會換門呢?</font> </span>**
==**你可能會想說因為一扇門被打開了,因此這相當於我從兩道門中選一道出來,因此換門與不換門後是出口的機率是1/2,有換沒換都沒差**==
難道不是嗎 :question: :question: :question:
**<font size = 5 class=red>難道不是 1/2 嗎??? </font>**
<img src="https://hackmd.io/_uploads/ryDjvs0_3.png"
style ="display:block; margin:auto; center; width:50%"/>
# 讓我們算一下機率吧 :game_die:
### Way1
讓我們簡單地分析一下,今天要是我不換門,則相當於我從三扇門中選一扇門出來,因此很簡單地可以得知機率
$$P(不換門)=1/3,$$
所以換門後是獎品的機率則是 $$1-P(不換門)=1-\frac{1}{3}=\frac{2}{3}.$$
### Way2
方便起見,讓我們先將三扇門分別以編號 "A", "B", "C" 稱呼,
則樣本空間總共會有9(3x3) 種可能,如下圖
**p.s.<span class = red>紅色代表獎品所在的門</span>,<span class=blue>藍色代表你選中的門</span>,兩扇門一樣時筆者省略藍色不畫.**

不失一般性,假設今天獎品在 A 門,若是你選擇了 B 門,則主持人會打開 C 門, 此時你選擇換的話,則會中獎,反之若是你選擇 C 門,同理,主持人會打開B 門,你一樣會中獎,所以獎品在 A 門的話種共有兩種可能性會中獎。
但今天獎品可能也會在 B 門或是 C 門,因此會中獎的可能性有六種(上圖被綠框框住的樣本點都是會中獎的),而樣本空間共有九種可能,因此
:::info
$$P(換門後中獎) =6/9=2/3$$
:::
同樣的分析,我們可以得知選擇不換門的機率為 1/3.
# 若你還是不相信.... :thinking_face:
如果是1/2的話,同理,今天門換成10,000,000道,你選了其中一道,剩下( 10,000,000-2)背後不是獎品的門被打開,現在只有兩扇門,這樣 P(不換門後是獎品) 也會是 1/2 才對,
但你再仔細想想,應該是不太合理吧,門有一千萬道,但我不換門後是獎品的機率是50%,這不合理吧!!!
按照上面的一開始的分析(Way1),其實不換門後是獎品的機率應該是 $\frac{1}{10,000,000}$,是個微乎其微的數字。
因此我們可以知道若是有 N 扇門,你選擇了一扇後主持人打開了不是背後不是獎品的 N-2 扇門,則你不換門中獎的機率是 1/N,交換後中獎的機率是
$$\frac{N-1}{N}, N\geq 3.$$
接下來,讓我們用 python 模擬,驗證一下若是有 N 扇門,換與不換的機率吧~~~
# Python 模擬 Code
```python=
import random
#令 n 為所有的門數, change 為布林值,代表是否要換門,換的換值為 True,反之為 False
def threeDoor(n, change):
# 獎品所在的門
prize = random.randrange(1,n+1)
#我們選擇的門
doorWePick = random.randrange(1,n+1)
# 如果獎品的門跟我們選擇的門一樣,交換的換則不會中獎,反之則中獎
if(doorWePick == prize):
if(change):
return False
else:
return True
# 如果獎品的門跟我們選擇的門不一樣,交換的換則會中獎,反之則不會中獎
else:
if(change):
return True
else:
return False
# ThreeDoorTest
def threeDoorTest(numberWeTry, numberOfDoors, change):
count = 0
winPrize = 0
while( count < numberWeTry ):
#執行結果
result = threeDoor(numberOfDoors,change)
if(result):
winPrize += 1
count = count+1
prob = winPrize/numberWeTry
print(numberWeTry,'次選擇中猜中了', winPrize,'次, 門的數量', numberOfDoors)
print('實驗完後機率:', prob,', 是否換門:', change)
return prob
#執行三門問題的測試
threeDoorTest(100000,3,True)
threeDoorTest(100000,3,False)
threeDoorTest(100000,100,False)
```
<font size=4>**模擬結果**</font>

三扇門時,我們可以看到不換門的機率模擬出來大約是1/3, 換門後的機率模擬出來大約是2/3。(~~不要去介意為何上面三扇門換和不換的兩項機率加起來不是1~~)
而今天若是100扇門時,實驗100,000萬次後不換門得到的機率大約是 1/100 = 0.01.
# 結論
1.換門後是獎品的機率比不換門後是獎品的機率高,但選到山羊也不錯,因為代表你選到了 the Greatest Of All Time.
(~~不過說實在的,會中就是會中,不會中就是不會中,冥冥之中自有安排吧,因此也不用太糾結要換門和不換門吧~~)
2.這個問題被又稱作「Monty Hall problem」,三扇門的情況是最讓人混淆的,據說數學家保羅·艾狄胥起初也覺得三扇門換和不換的機率是一樣的。
> [time=Sun, Jul 2, 2023 16:39 PM]