三门问题代码
发布日期:2021-06-28 19:59:37
浏览次数:2
分类:技术文章
本文共 1665 字,大约阅读时间需要 5 分钟。
三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let's Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Monty Hall)。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门是否会增加参赛者赢得汽车的机率。如果严格按照上述的条件,那么答案是会。不换门的话,赢得汽车的几率是1/3。换门的话,赢得汽车的几率是2/3。
虽然该问题的答案在逻辑上并不自相矛盾,但十分违反直觉。代码实验一下。
import java.util.Random;/** * 三门问题 * * @author xs * create-time: 2021-06-03 14:28 */public class ThreeDoor { public static void main(String[] args) { int succCount = 0; for (int i=0; i<1000000; i++) { if (choose()) { succCount ++; } } System.out.println("1000000次成功了" + succCount + "次"); } private static boolean choose() { // 1. 初始化选择 Random ran = new Random(); int carNum = ran.nextInt(3); int userChoose = ran.nextInt(3); // 2. 删除一个错误答案 int removeNum = doRemove(carNum, userChoose); // 3. 换门 int changeToNum = change(userChoose, removeNum); return changeToNum == carNum; } private static int change(int userChoose, int removeNum) { return 3 - userChoose - removeNum; } private static int doRemove(int carNum, int userChoose) { // 0,1,2中排除错误答案,且不能为用户选择的门 Random ran = new Random(); int result = -1; do { result = ran.nextInt(3); } while (result == carNum || result == userChoose); return result; }}
实验结果:
1000000次成功了666848次
1000000次成功了666734次 1000000次成功了666356次 1000000次成功了666467次 1000000次成功了666649次 1000000次成功了666578次 1000000次成功了667333次 1000000次成功了666657次 1000000次成功了667355次 1000000次成功了666211次转载地址:https://blog.csdn.net/xxxxssss12/article/details/117521670 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月03日 22时39分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ETCD原理详细解析
2019-04-29
Docker 快速删除所有容器
2019-04-29
分布式锁的实现方式
2019-04-29
JVM性能监控工具-Jvisualvm
2019-04-29
JMX超详细解读
2019-04-29
Java泛型详解
2019-04-29
Hadoop集群hdfs添加磁盘操作
2019-04-29
【运维篇】HDFS磁盘选择策略详解
2019-04-29
macOs 静默安装dmg文件
2019-04-29
linux 命令学习 ls
2019-04-29
时间管理
2019-04-29
重识SQLHelper
2019-04-29
安卓开发快速上手!我的Android美团求职之路,安卓系列学习进阶视频
2019-04-29
安卓开发招聘!免费Android高级工程师学习资源,2年以上经验必看
2019-04-29
泪目!带你全面解析Android框架体系架构view篇,年薪50W
2019-04-29
大厂架构师经验分享!我离职后面试收割小米等大厂offer,知乎上已获万赞
2019-04-29