“”“
三門問題簡述:三個門後邊有兩隻山羊,一部汽車,顧客開始選擇任意一個門,然後主持人打開存有山羊的一個門,如果改變選擇,它的概率是多少選中車
”“”
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)