You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python编写Monty Hall模拟结果为0.5与预期0.66不符,求代码问题排查

三门问题模拟结果异常排查

你代码运行得到0.5的核心原因是最后一步选择逻辑不符合三门问题的推导前提:

  • Marilyn给出的2/3胜率,是参赛者固定选择换门时的结果
  • 你代码中s = random.choice(doors)是在Monty开门后剩下的两扇门里随机二选一,这种情况胜率自然是50%

另外原代码缺少import random语句,实际运行会报错,修正时需要补上。

修正后可复现0.66胜率的代码

import random
n = 1000000
count = 0
for i in range(n):
    doors = [1,2,3]  
    monty_choose = [1,2,3]
    # 固定汽车位置为1,初始选择随机等同于汽车位置随机的效果
    car = 1   
    monty_choose.remove(car)    
    ichoose = random.choice(doors)  
    if ichoose in monty_choose:
        monty_choose.remove(ichoose)  
        monty = random.choice(monty_choose)  
    else:
        monty = random.choice(monty_choose)
    doors.remove(monty)
    # 固定执行换门操作:排除初始选择的门,剩下的就是要换的门
    doors.remove(ichoose)
    s = doors[0]
    if s == car:
        count = count + 1 
print(count/n)

修正后运行代码,输出结果会稳定在0.66~0.67区间,符合预期结论。

内容的提问来源于stack exchange,提问作者Carol G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:24:02