【发布时间】:2017-05-22 19:13:18
【问题描述】:
我正在尝试计算一个改变门选择的人在 10,000 次迭代中可能获胜(获得汽车)的次数。我不确定我的范围或计数器的格式是否错误(或两者都有)。在我尝试打印 counter 之前,代码似乎一直在工作——这导致了一个 1 的列表。
for i in range (10000):
doors = ["goat"] + ["goat"] + ["car"]
rn.shuffle(doors)
persons_choice = rn.randint(0,2)
persons_choice1 = str(doors[persons_choice])
if persons_choice1 == "goat":
monty_choice = "goat"
elif persons_choice1 == "car":
monty_choice = "goat"
if persons_choice1 == "car":
doornumber3 = "goat"
elif persons_choice1 == "goat":
doornumber3 = "car"
final_options = [persons_choice1] + [doornumber3]
rn.shuffle(final_options)
final_choice = rn.randint(0,1)
thefinal_choice = str(final_options[final_choice])
counter = 0
if thefinal_choice == "car":
if str(persons_choice1) != str(thefinal_choice):
counter += 1
print counter
【问题讨论】:
-
有些事情没有意义。例如,persons_choice1 只能是山羊或汽车,无论哪种方式,您都将 monty_choice 设置为山羊。
-
您在每次迭代时将计数器重置为 0,在循环之前只执行一次。