蒙提霍尔游戏 python 模拟

简介: 本文使用蒙特卡罗方法验证蒙提霍尔游戏的结论。以下代码,本人原创!完整代码import random# 蒙提霍尔游戏def play_game(strategy='nonchange'): # 门牌编号 doors = [0,1,2] # 门后的奖品 gifts = ['goat', 'goat', 'car'] random.

本文使用蒙特卡罗方法验证蒙提霍尔游戏的结论。

以下代码,本人原创!

完整代码

import random


# 蒙提霍尔游戏
def play_game(strategy='nonchange'):
    # 门牌编号
    doors = [0,1,2]

    # 门后的奖品
    gifts = ['goat', 'goat', 'car']
    random.shuffle(gifts)

    # 观众挑选一扇门(编号)
    viewer_choice = random.choice(doors)

    # 主持人从剩下的两扇门中,打开门后是是山羊的某一扇门(编号)
    host_open = random.choice(list(filter(lambda x:gifts[x]=='goat' and x!=viewer_choice, doors)))
    
    # 顺便,也标记剩下的一扇门(编号)
    viewer_lift = list(filter(lambda x:x!=viewer_choice and x!=host_open, doors))[0]

    # 观众根据策略获得的奖品
    viewer_gift = [gifts[viewer_choice], gifts[viewer_lift]][strategy=='change']
    
    # 根据策略成功与否,返回 1、0 (为方便计数)
    return [0, 1][viewer_gift=='car']
    

# 游戏次数
n = 10000


# 蒙特卡罗方法,模拟 n 次游戏
# 策略一:不改变选择
p = sum((play_game('nonchange') for _ in range(n))) / n  # 频率 ≈ 概率
print('nonchange:', p)


# 蒙特卡罗方法,模拟 n 次游戏
# 策略二:改变选择
p = sum((play_game('change') for _ in range(n))) / n     # 频率 ≈ 概率
print('change:', p)

效果图

img_c5598aabf25c8255fec40d1589d6cbf6.jpg

目录
相关文章
|
存储 关系型数据库 MySQL
OceanBase数据库 与 mysql 对比
OceanBase数据库 与 mysql 对比
5796 1
|
弹性计算 固态存储 大数据
阿里云服务99元一年,多配置价格表,太炸裂了
阿里云服务器2024年最新租用价格:轻量应用服务器2核2G3M带宽年费82元,折合每月6.8元;2核4G4M带宽年费298元。新老用户共享99元一年的2核2G3M带宽ECS服务器优惠,及199元一年的2核4G5M带宽企业级ECS u1实例。游戏服务器方面,4核16G10M带宽70元/月,8核32G10M带宽160元/月。此外,还有GPU服务器等多种配置供选择。具体价格和配置请参考阿里云官方页面。
2109 107
|
12月前
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。
|
弹性计算 应用服务中间件
阿里云国外云服务器有哪些地域可选?如何选择?
1.轻量应用服务器的可选地域为:香港与新加坡; 2.其他云服务器ECS的可选地域为:日本(东京)、马来西亚(吉隆坡)、澳大利亚(悉尼)、中国(香港)、新加坡、印度(孟买)、美国(弗吉尼亚)、美国(硅谷)、印度尼西亚(雅加达);
|
对象存储
阿里云对象存储OSS带宽限制
使用OSS进行数据的上传、下载等操作,带宽是有限制的,中国内地各地域10 Gbit/s、其他地域5 Gbit/s。如达到该阈值,请求会被流控。
3808 0
|
SQL 存储 设计模式
[Python] Django ORM与执行原生SQL实现操作数据库(上)
[Python] Django ORM与执行原生SQL实现操作数据库(上)
|
缓存
啊哈!C盘又满了?快修改IntelliJ IDEA默认系统缓存cache目录路径
啊哈!C盘又满了?快修改IntelliJ IDEA默认系统缓存cache目录路径
1065 0
啊哈!C盘又满了?快修改IntelliJ IDEA默认系统缓存cache目录路径
|
1天前
|
云安全 人工智能 自然语言处理