网站设计报价是多少钱,电商培训班一般学多久,宁波网络推广产品服务,北京定制公交网站上一篇文章分析了经典的蒙提霍尔问题#xff0c;最后的结论是更换选择后有2/3的机会中奖。蒙提霍尔问题到此已经完结#xff0c;但事实却并非如此。 在蒙提霍尔问题中#xff0c;主持人事先知道汽车在哪个门后面#xff0c;并且他一定会选择没有汽车的那扇门。如果我们稍稍…上一篇文章分析了经典的蒙提霍尔问题最后的结论是更换选择后有2/3的机会中奖。蒙提霍尔问题到此已经完结但事实却并非如此。 在蒙提霍尔问题中主持人事先知道汽车在哪个门后面并且他一定会选择没有汽车的那扇门。如果我们稍稍改变一下前提主持人事先也不知道汽车在哪个门后面他只是随便打开2扇门中的一扇并且恰好这扇门后面是山羊那么此时的情况又是怎样的呢 如果你看了上一篇文章你可能会不假思索地认为两者是完全一样的因为反正都是主持人帮我们排除掉了一只山羊嘛 没错在某一次特定的选择中这两种情况并没有不同但实际上两种前提隐含的样本数却是不同的。 现在我们假设这个节目在播出前录制了一万次。 第一种情况主持人事先知道山羊在哪扇门中那么如果不出意外的话这一万次录制都能够顺利完成作为导演我们只需从中选择某一次即可。因此样本数为1万。 但如果主持人事先并不知道山羊在哪个门中的话那么一万次录制中将大约有3300次是失败的因为主持人有1/3的可能会选中汽车而这与节目的要求是不符的。因此最终只有大约6700次录制是有效的。也就是说这种情况下的样本数变了变为了原来的2/3。 在上一篇文章中我们有一个重要的结论当选择了A门之后A门的中奖几率将不再改变。注意这一结论是相对于原样本数的几率。也就是说我们选择A门的中奖几率是1/3是相对于1万次录制来说的。当我们把主持人选到山羊的那大约6700次录制单独拿出来计算A门的中奖几率时此时A门的新的中奖几率将变为 1/3 ÷ 2/3 1/2 仍然可以用上一篇文章的方法来考虑这个问题只是可能的情况由3种变成了6种 (1) 参赛者选择山羊A主持人选择山羊B (2) 参赛者选择山羊A主持人选择汽车 (3) 参赛者选择山羊B主持人选择山羊A (4) 参赛者选择山羊B主持人选择汽车 (5) 参赛者选择汽车主持人选择山羊A (6) 参赛者选择汽车主持人选择山羊B 6种情况的几率都是1/6但是2和4两种情况是无效的因此无论是否变更选择都各有一半的几率会中奖。 这实际上是另一种人为干预的结果我们从结果中剔除那些不符合条件的部分从而让事物的发展符合我们的预期。这就像人类对物种的人工选择行为遗传的变异几率在人工的选择过程中被放大了从而让繁殖出的后代更加符合我们的预期。 上代码 int totalTimes 1000000;
int bingo 0;
boolean[] boxes; int actuallyTotalTimes 0; for (int i 0; i totalTimes; i) { // loop 1 million times boxes new boolean[] {false, false, false}; boxes[random(3)] true; int myChoice random(3); int hostChoice random(3, myChoice); if (boxes[hostChoice]) { continue; } actuallyTotalTimes; if (!boxes[myChoice]) { bingo; } } return (double ) bingo * 100 / actuallyTotalTimes; 主持人不再是只选择山羊而是在剩下的2扇门中随机选择。actuallyTotalTimes是有效的样本数量仅在主持人没有选中汽车时才会增加因此有效的样本数量仅为总样本数的2/3。 完整代码下载包括上一篇的2段代码 http://pan.baidu.com/s/1i3niOvF 转载于:https://www.cnblogs.com/sthinker/p/5879527.html