蒙提霍尔游戏 python 模拟
本文使用蒙特卡罗方法验证蒙提霍尔游戏的结论。
以下代码,本人原创!
完整代码
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)
效果图
蒙提霍尔游戏 python 模拟相关推荐
- 使用Python模拟蒙蒂霍尔悖论游戏
假设你正参加一个有奖游戏节目,并且有3道门可选:其中一个后面是汽车,另外两个后面是山羊.你选择一个门,比如说1号门,主持人当然知道每个门后面是什么并且打开了另一个门,比如说3号门,后面是一只山羊.然后 ...
- 蒙提霍尔问题(The Monty Hall Problem)解析(贝叶斯分析、Python仿真)
目录 0. 前言 1. 什么是蒙提霍尔问题(Monty Hall problem) 2. Naive approach:分类讨论 3. Python蒙特卡洛仿真 4. 直观的理解1 5. 贝叶斯方法 ...
- 【Java】蒙提霍尔问题的概率原理及随机化模拟
问题引入 人们常说:"相信自己的直觉"."跟着自己的直觉走,没错的"."要坚定自己的路"-- 不是说这些话不对,但有时候结果还真不是我们直觉 ...
- python物理模拟_如何在Python 游戏中模拟引力
学习如何使用 Python 的 Pygame 模块编程电脑游戏,并开始操作引力. 真实的世界充满了运动和生活.物理学使得真实的生活如此忙碌和动态.物理学是物质在空间中运动的方式.既然一个电脑游戏世界没 ...
- python模拟报数游戏有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号?
python模拟报数游戏 有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号? from itertools ...
- 用python写一个简单的网页游戏_python模拟点击玩游戏的实例讲解
小编发现很多小伙伴都喜欢玩一些游戏,而手游因为玩的场景限制不多,所以受众的人更多.游戏里有很多重复的任务需要我们完成,虽然过程非常无聊,但是为了任务奖励还是有很多小伙伴不厌其烦的去做.那么,有没有什么 ...
- 趣图 | 著名的悖论蒙提霍尔问题到底是什么?
来源 | 后端技术指南针 写在前面 前几天和同事聊了个问题,觉得还蛮有趣,决定和大家分享一下. Oh My God! 搞它搞它! 题目描述 我们的热心读者小明被选中参加一个抽奖游戏,游戏规则是这样的: ...
- 【概率论】蒙提霍尔问题
文章目录 三门问题 Java模拟 原理分析 简易分析 详细分析 三门问题 三门问题(Monty Hall problem)亦称为蒙提霍尔问题.蒙特霍问题.蒙提霍尔悖论,大致出自美国的电视游戏节目Let ...
- Python模拟赌博实验,赌博为什么能赌到倾家荡产?
Python模拟赌博实验 作者:dalalaa http://www.jianshu.com/p/2d919a028600 概述 前言 实验思路 实验步骤 统计数据 结论 阿广说 福利一刻 推荐阅读 ...
最新文章
- react 组件连动效果_react-redux应用之独立组件联动实例
- CSS的表白:七夕巧克力心
- Linux下进程的建立
- 为了输出“,可以使用如下语句print(“““)————(×)
- 中国第一个发《Nature》的竟然是清朝人!被皇帝夸天下第一,他却觉得羞耻..........
- Flex中的Base64加解密
- 在PhpStorm中管理GitHub代码仓库的使用方法
- 向“3+1” SQLServer2008集群增加磁盘
- POJ 3678 2-SAT简单题
- 解决:本地计算机上的MySQL80服务启动后停止,某些服务在未由其他服务或者程序使用时将自动停止
- 计算机常用的英语单词及缩写,常见计算机英语缩写及单词
- 计算机应用发邮件,使用 SMTP 发送电子邮件
- 各场景下NetApp的数据备份推荐(Veeam+群晖NAS)
- 淘宝转化率突然下降怎么办?原来是这些原因
- 在这个“未来工厂”里, 人类仅凭脑电波控制机器
- 【深度学习】02-06-谈谈机器学习的原理(选修)-李宏毅老师2122深度学习课程笔记
- WINDOS服务器安全设置
- Javascript循环删除数组中元素的3种方法
- (STM32笔记)一、STM32特点
- HTML和CSS3写的switch插件
热门文章
- Could not resolve the package 'english_words' in 'package:english_words/english_words.dart'
- CNN: TensorFlow 1.14.0 更新
- python/numpy将矩阵保存为文本文件
- CPU+GPU异构计算完全解析
- mysqladmin 设置用户名初始密码报错you need the SUPER privilege for this operation
- JAVA-JAVA WEB开发工具下载与安装
- DIOCP 运作核心探密
- mysqldump主要参数探究
- javascript基础学习一
- 用squid配置代理服务器(基于Ubuntu Server 12.04)