“三门问题”的逻辑分析与验证

发表时间:2023-04-11 13:55:13点击:2636

三门问题,也被称为蒙提霍尔问题,是一道著名的概率问题:一个游戏节目中有三扇门,一扇门后有汽车,另两门后只有山羊,目标是选到汽车。当你选择了一扇门但不打开,这时主持人会在另两门中打开一个后面是山羊的门,这个时候你换不换自己刚才选择的门?换与不换哪个得到汽车的概率更大呢?

分析一下,我们先定义三扇门,分别是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

*原创文章,转载请注明出处