---
# System prepended metadata

title: 三門問題

---

<style>
.red {
  color: red;
}
.blue{
  color:blue;    
}
</style>

# 三門問題

![](https://hackmd.io/_uploads/rkrkuwhun.png)


你今天參加了參與了一場遊戲，看到了三扇關起來的門。
這三扇門中有其中一扇後面有一台車子，令外兩扇後面各有一隻山羊。

接著主持人請你選擇一扇門，若是選中的門打開後是車子，則可以將車子開回家，
反之則是拿不到任何東西。

在你跟主持人說好你決定選擇了哪一扇門之後，主持人此時刻意打開了另外兩扇中後面有著山羊的一扇門，山羊對你咩了一聲，: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>，兩扇門一樣時筆者省略藍色不畫.**

![](https://hackmd.io/_uploads/S1efRj0_3.png)

不失一般性，假設今天獎品在 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>
![](https://hackmd.io/_uploads/rJRu4nCu2.png)


三扇門時，我們可以看到不換門的機率模擬出來大約是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]



