立即注册 登录
社友网(新版) 返回首页

admin的个人空间 http://su.sseuu.com/?1 [收藏] [复制] [分享] [RSS]

日志

三门问题的验证.py

已有 39 次阅读2024-2-9 10:25

# 作者:西岛闲鱼
# https://github.com/globien/easy-python
# https://gitee.com/globien/easy-python

# 验证三门问题(Monty Hall problem)

import random
获奖次数_不换 = 0       # 不换而获奖的计数器
获奖次数_换 = 0         # 换而获奖的计数器
试验次数 = 100000       # 换和不换各做这么多次实验

for i in range(试验次数):               # 不换的实验
    door_list = ["A","B","C"]           # 三扇门的编号
    car = random.choice(door_list)      # 汽车随机放在某扇门后
    bet = random.choice(door_list)      # 挑战者随机选择一扇门
    if bet == car:                      # 不换!直接揭晓答案
        获奖次数_不换 = 获奖次数_不换 + 1   

for i in range(试验次数):               # 换的实验
    door_list = ["A","B","C"]           # 三扇门的编号
    car = random.choice(door_list)      # 汽车随机放在某扇门后
    bet = random.choice(door_list)      # 挑战者随机选择一扇门        
   
    # 现在主持人随机选择一扇门予以排除
    # 这扇门不是挑战者选择的门,也不是汽车所在的门
    host_list = ["A","B","C"]
    host_list.remove(bet)
    if car in host_list:
        host_list.remove(car)
    discard = random.choice(host_list)
    
    # 现在挑战者决定换,即换成剩下的一扇门,看看是否获奖
    door_list.remove(bet)           # 去掉自己已经选过的门
    door_list.remove(discard)       # 去掉主持人排除的门
    bet = door_list[0]              # 只剩下一扇门,换成它!
    if bet == car:                  # 换!揭晓答案
        获奖次数_换 = 获奖次数_换 + 1                  

print("不换的获奖概率:", 获奖次数_不换/试验次数)
print("换的获奖概率:  ", 获奖次数_换/试验次数)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|Archiver|手机版|粤ICP备12005776号-5|su.sseuu.com  

GMT+8, 2024-12-10 07:22 , Processed in 0.046260 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

返回顶部