“三门问题”的逻辑分析与验证
三门问题,也被称为蒙提霍尔问题,是一道著名的概率问题:一个游戏节目中有三扇门,一扇门后有汽车,另两门后只有山羊,目标是选到汽车。当你选择了一扇门但不打开,这时主持人会在另两门中打开一个后面是山羊的门,这个时候你换不换自己刚才选择的门?换与不换哪个得到汽车的概率更大呢?
分析一下,我们先定义三扇门,分别是a,b,c,其中b是正确的门。
1、假如选了a,那么c会被打开,再重新选b,就赢了
2、假如选了c,那么a会被打开,再重新选b,就赢了
3、假如选了b,那么a或者c会被打开,再无论重新选a或者c,就都输了
我们可以看到,这三种情况,换门可以赢两次,不换门会输两次
既然是概率问题,就需要用大量次数去验证。我们可以定义三个变量a,b,c,它们分别是1、0和2,在选择换门的前提下,重复10万次这个游戏,a和c随机出现的概率就是2/3
public static void sanmen(){
int a=1,b=0,c=2;
Random random = new Random();
int success = 0;
int fail = 0;
for (int i=0;i<1000000;i++) {
int r = random.nextInt(3);
if (r == a || r == c) {
success++;
}else {
fail++;
}
}
System.out.println("success:"+success);
System.out.println("fail:"+fail);
}
结果如下:
success:667148
fail:332852
上一篇:个人博客文章的表结构设计