python模擬“三門問題”

問題介紹

三門問題,即蒙提·霍爾問題。蒙提·霍爾原本是美國電視游戲節(jié)目Let's Make a Deal的主持人,蒙提霍爾問題就是源自該節(jié)目中的一個游戲。如果你是參賽者,以下是節(jié)目現(xiàn)場的情況

  • 你會看到三扇關(guān)閉的門,蒙提會告訴你每扇門后的獎勵:其中有一扇門后面是一輛車,而另外兩扇門后面則是諸如花生醬或假指甲之類不太值錢的東西。獎品的擺放是隨機的。

  • 你的目標就是要猜出哪扇門后是汽車。如果猜對,汽車就歸你了。

  • 我們把你選擇的門稱為A門,其他兩扇門分別是B門和C門。
    在打開你所選擇的A門之前,蒙提往往會打開B門或C門擾亂你的選擇。(如果汽車確實是在A門后面,那蒙提隨機打開B門或C門都沒有問題。)

  • 接下來,蒙提會給你一個機會:你是堅持原來的選擇,還是選擇另一扇未打開的門

  • 在看結(jié)果之前,我希望各位可以先想一下這兩者有區(qū)別么

代碼模擬

import random

doors = [0, 0, 0]
car_door_index = random.randint(0, 2)
doors[car_door_index] = 1

selected_sum = 0

i = 0
# 堅持原來選擇
while i < 500000:
    selected_index = random.randint(0, 2)
    selected_sum = selected_sum + doors[selected_index]
    i = i + 1

print('堅持原來選擇,選到車的概率:', selected_sum / 500000)

# 換選擇
other_doors = [0, 0, 1]
other_car_index = random.randint(0, 2)
doors[car_door_index] = 1
selected_other_sum = 0
i = 0
# 循環(huán)500000次模擬結(jié)果
while i < 500000:
    door_copy = other_doors[:]
    # 先隨機選一扇門
    select_index = random.randint(0, 2)
    # 被打開門index
    open_index = 0
    # 然后打開一扇后面不是車的門,即列表中修改一個非1的元素
    if door_copy[select_index] == 0:
        for index, item in enumerate(other_doors):
            if item != 1 and index != select_index:
                open_index = index
                break
    if door_copy[select_index] == 1:
        if select_index == 0:
            open_index = random.randint(1, 2)
        elif select_index == 1:
            l = [0, 2]
            open_index = l[random.randint(0, 1)]
        else:
            open_index = random.randint(0, 1)

    # 打開(修改)另一扇們
    door_copy[open_index] = -1

    # 獲取改換主意的結(jié)果
    door_copy[select_index] = -1
    results = [r for r in door_copy if r != -1]
    # print(results)
    result = results[0]
    selected_other_sum = selected_other_sum + result

    i = i + 1

print('選擇另一扇,選到車的概率:', selected_other_sum / 500000)

結(jié)果展示

  • 運行了兩次
堅持原來選擇,選到車的概率: 0.333622
選擇另一扇,選到車的概率: 0.667554

堅持原來選擇,選到車的概率: 0.333422
選擇另一扇,選到車的概率: 0.667566
  • 按原來選擇毫無疑問是1/2,換選擇之后選到車的概率是2/3。

最后

  • 感覺和真相還是有差距的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容