三門問題的Python驗證

“”“
三門問題簡述:三個門後邊有兩隻山羊,一部汽車,顧客開始選擇任意一個門,然後主持人打開存有山羊的一個門,如果改變選擇,它的概率是多少選中車
”“”
i=0
count=0
doors=["s","s","c"]#分別代表車,與山羊
# 蒙特卡洛方法的應用,三門問題從理論上探討是十分困難的,但是蒙特卡洛方法給我們一種驗證的方法
while i<=1000:
    # 隨機洗牌,打亂順序返回自身
    random.shuffle(doors)
    # 利用列表索引來代表不同的門牌的選擇
    first_choice=random.randint(0,2)
    # 首先從用遍歷找到不是車的所有索引集合,在隨機抽取一下,模仿從主持人所做的動作
    masetchoices=[]
    for j in range(3):
        if doors[j]!="c":
            masetchoices.append(j)
    masetchoice=random.choice(masetchoices)
    # 改變選擇就是,遍歷索引是的,最後選擇的索引不在前兩個之中就可以,若是在這個條件下,改索引獲得車,就是勝利,可以計數加1
    for z in range(3):
        if z not in[first_choice,masetchoice]:
            if doors[z]=="c":
                count+=1
    i=i+1
print(count/1000)



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章