关于三门问题的代码实现

首先附三门问题题目和连接https://baike.baidu.com/item/%E4%B8%89%E9%97%A8%E9%97%AE%E9%A2%98/1242689?fr=aladdin

其次根据题目需求,代码实现,这里用的是java

 1 public static void main(String[] args) {
 2         Random r = new Random();
 3
 4         int no=0;
 5         int yes = 0;
 6         int doors = 3;
 7         int playCount =1000000;
 8         for(int i=0;i<playCount;i++){
 9             //定义三个门
10             ArrayList<Integer> nums = new ArrayList<>();
11             for(int j=1;j<=doors;j++){
12                 nums.add(j);
13             }
14
15             //rightNum门后是汽车
16             int rightNum = r.nextInt(doors)+1;
17
18             //参赛者第一次选择的是firstNum门
19             int firstNum = r.nextInt(doors)+1;
20
21             //主持人去掉一扇后面是山羊的门
22             int cutNum = r.nextInt(doors)+1;
23             while(cutNum == rightNum || cutNum ==firstNum){
24                 cutNum = r.nextInt(doors)+1;
25             }
26
27             //去掉主持人选中的门
28             for (int j = 0; j < nums.size(); j++) {
29                 if(nums.get(j)==cutNum){
30                     nums.remove(j);
31                 }
32             }
33
34             //参赛者第二次选择一扇门
35             int secondNum = r.nextInt(doors)+1;
36             while(secondNum == cutNum || secondNum ==firstNum){
37                 secondNum = r.nextInt(doors)+1;
38             }
39
40             //参赛者第二次选择,如果不换门选中汽车,则no加一
41             if(firstNum == rightNum){
42                 no++;
43             }
44
45
46             //参赛者第二次选择,如果换门选中汽车,则yes加一
47             if(secondNum==rightNum){
48                 yes++;
49             }
50
51         }
52         //循环实验,输出结果
53         System.out.println("no:"+no+"\tyes:"+yes+"\ttotal:"+(no+yes)+"\tplayCount:"+playCount);
54
55     }

结果是换门有更大的概率获得汽车,但门的数量越多,换与不换的概率越相近

时间: 2024-10-08 06:57:47

关于三门问题的代码实现的相关文章

错误和问题解决的成本

问题描写叙述 错误 数据收集 根本原因 版本号   组件:数据修复           在一个实际成本组织中,(平均,先进先出,后进先出) 一个或更 多的下面情况可能发生: 1.导航到物料成本历史表单上的数量信息,与现有量表单的数量不匹配的记录 2. 一些物料前期已计成本的数量与前面的事务处理历史表单的数量不匹配 3. 全部的库存值报表与事务处理值报表不匹配 4. 存货层次成本更新表单的总数量与现有量数量表单不匹配(只在先进先出/后进先出) 5.这些症状的不论什么一个意味着 MMT-CQL不匹配

获取城市代码

http://m.weather.com.cn/data5/city.xml 返回所有省/直辖市的编号 01|北京,02|上海,03|天津,04|重庆,05|黑龙江,06|吉林,07|辽宁,08|内蒙古,09|河北,10|山西,11|陕西,12|山东,13|新疆,14|西藏,15|青海,16|甘肃,17|宁夏,18|河南,19|江苏,20|湖北,21|浙江,22|安徽,23|福建,24|江西,25|湖南,26|贵州,27|四川,28|广东,29|云南,30|广西,31|海南,32|香港,33|澳

中国天气网城市代码

中国天气网城市代码 101010100=北京  101010200=海淀  101010300=朝阳  101010400=顺义  101010500=怀柔  101010600=通州  101010700=昌平  101010800=延庆  101010900=丰台  101011000=石景山  101011100=大兴  101011200=房山  101011300=密云  101011400=门头沟  101011500=平谷  101011600=八达岭  101011700=佛爷顶

天气预报及城市代码

名称:新浪天气预报代码 代码 :<IFRAME ID='ifm2' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' src="http://news.sina.com.cn/iframe/weather/320201.html"></iframe> 上面的城市可以

蒙提-霍尔悖论(三门问题)终极分析

三门问题——亦称为蒙提霍尔问题,出自美国的电视游戏节目Let's Make a Deal.问题的名字来自该节目的主持人蒙提·霍尔(Monty Hall)[2].问题是这样的: 参赛者面前有三扇关闭着的门,其中一扇的后面是一辆汽车,选中后面有车的那扇门就可以赢得该汽车,而另外两扇门后面则各藏有一只山羊.当参赛者选定了一扇门,但未去开启它的时候,主持人会开启剩下两扇门中的一扇,露出其中一只山羊.主持人其后会问参赛者要不要更换选择,选另一扇仍然关着的门. 据说此节目一经播出就引起了一场热烈的讨论,有人

中国天气网城市代码json格式的生成与应用

一.城市代码Json格式生成 各个天气应用普遍使用中国天气网的城市id,但是最近天气网开始要求注册.认证,估计离收费不远,开放接口也时灵时不灵,为了app的流畅运行,可以将城市代码保存到本地使用.源城市代码网址:http://cj.weather.com.cn/support/Detail.aspx?id=51837fba1b35fe0f8411b6df,源城市代码原文: 1 城市ID列表 2 3 citycode 城市 二级 一级 4 5 101010100,北京,北京,北京 6 7 1010

三门问题,得出答案只要证明这几个例子逻辑等价就行了

最近在看离散数学,又看到这让人纠结的三门问题.想到其实把这个问题用第一章的逻辑与证明的知识把这个问题简化几次就根本没人会纠结了. 例1:两个人完抽牌游戏.游戏规则这样的,一共三张牌,里面有一张王牌,两张普通牌,甲先抽一张,乙抽两张.   请问:甲,乙抽到王牌的几率是多少.  我想,没人会纠结吧.甲,三分之一,乙,三分之二. 稍微复杂化一下,其实只是绕个圈子. 例2:两个人完抽牌游戏.游戏规则这样的,一共三张牌,里面有一张王牌,两张普通牌,甲先抽一张,乙抽两张,然后乙丢掉了一张牌(此牌不是王牌).

2016-中国移动号码归属地查询(省市代码)

各级省份代码: switch (procodes) { case "100": retS = "北京"; break; case "551": retS = "安徽"; break; case "230": retS = "重庆"; break; case "591": retS = "福建"; break; case "200"

反直觉的一个游戏 - 三门问题 (Monty Hall problem)

三门问题,也叫蒙提霍尔问题(Monty Hall Problem) 以电视节目 - Let's make a deal的主持人蒙提霍命名的一个反直觉问题. 游戏简介 假设有3个门. 其中一个后面藏着宝藏,其余2个都是空门(美国节目中1个后面有汽车,其余的2个是山羊). 游戏开始: 首先你先选择一张门, 选好后,主持人帮你在其余2扇没有被选择的门中打开一扇没奖的门. 这时候你有一个选择权, 换门还是不换门? 直觉上换不换几率都是50%,那到底几率是多少? 换是不是得奖的机会大一些? 可以用代码来模