三门问题
参赛者面前有三扇关闭着的门,其中一扇的后面是一辆汽车,选中后面有车的那扇门就可以赢得该汽车, 而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,主持人会开启剩 下两扇门中的一扇,露出其中一只山羊。主持人其后会问参赛者要不要更换选择,选另一扇仍然关着的门。 那么,应不应该更换呢?
参赛者面前有三扇关闭着的门,其中一扇的后面是一辆汽车,选中后面有车的那扇门就可以赢得该汽车, 而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,主持人会开启剩 下两扇门中的一扇,露出其中一只山羊。主持人其后会问参赛者要不要更换选择,选另一扇仍然关着的门。
那么,应不应该更换呢?
分析
假如你选择了A,那你中奖概率应为1/3.
主持人在B、C中选了个没奖的,这与你的选择其实没影响,因为你没选的肯定有个没奖的。
换与不换其实就相当于问你选A还是不选A。
程序模拟
有点绕,咱学软件的,就干脆让电脑跑一跑。
代码
import java.util.Random;
class Test{
public static void main(String[] args) {
Random ran=new Random();
int c1=0,c2=0;
for(int i=0;i<1e6;i++){
boolean boxes[]={false,false,false};
boxes[ran.nextInt(boxes.length)]=true;//某个门后有奖
int sel=ran.nextInt(boxes.length);//随便选择一扇门
int p=0;
while(p==sel||boxes[p]){//主持人选择一扇没奖的门(且不与参与者选同一扇)
p=ran.nextInt(boxes.length);
}
if(boxes[sel]){//不更换中奖
c1++;
}
if(boxes[0+1+2-sel-p]){//更换中奖
c2++;
}
}
System.out.println(c1/1e6);
System.out.println(c2/1e6);
}
}
运行结果
0.332419
0.667581
看来是更换比较好了。
最后修改于 2019-09-16