python羊车门问题完全模拟
代码思路
进行一定的游戏次数,对坚持第一次选择胜利(选到汽车)的次数count1进行统计。
进行一定的游戏次数,对更改选择获得胜利的次数count2进行统计。
最终用count1/times以及count2/times获得两种选择的获胜概率。
import random
times = eval(input("输入计划进行游戏的次数:")) #输入玩游戏的次数
count1 = 0 #不换选择胜利的次数
count2 = 0 #换先择获得的次数
''' 如果玩times次游戏,每次都不换选择,则可以获得count1次胜利 '''
for i in range(0,times):
carin = random.randint(1,3)
guess1 = random.randint(1,3)
if guess1 == carin:
count1+=1
''' 如果玩times次游戏,每次都换选择,则可以获得count2次胜利 '''
for i in range(0,times):
carin = random.randint(1,3)
guess1 = random.randint(1,3)
sheep = random.randint(1,3)
while(1):
if sheep == guess1 or sheep == carin:
sheep = random.randint(1,3)
else:
break
if carin != sheep and carin !=guess1:
count2+=1
gai1 = count1/times #不换选择胜利的概率
gai2 = count2/times #更换选择胜利的概率
print ("不换选择胜利的概率为:{}".format(gai1))
print ("更换选择胜利的概率为:{}".format(gai2))
以下是运行结果示例:
如图所示,坚持选择获胜的概率为1/3,更换选择获胜的概率为2/3