三扇门

作者: zrainx | 来源:发表于2017-05-10 14:06 被阅读0次

    有一道思考题,题目是这样的:

    有三扇门,其中一扇门里有奖品,三选一,你选择其中一扇门之后,主持人先不揭晓答案,而是从另外两扇门中排除掉一个没有奖品的门,现在主持人问你,要不要换个门,请问你换还是不换?

    一开始,我认为 题目相当于主持人排除一个门后,剩余两个门,所以换与不换都是1/2的概率,所以选择不换。

    后来百度了一下,发现应该选择换门才对,换门的中奖概率是2/3。

    可以这样考虑,你选任何一个门中奖的概率是1/3,那么反过来想,你不中奖的概率是2/3,也就是说奖品在另外两个门后的概率是2/3。而当主持人排除掉另两个门中的一个门后,如果你换成另一个门就相当于获得了2/3的中奖概率。

    但是,我还是没想通我一开始的想法有什么错误之处。于是写了个matlab程序证明一下我的想法。
    程序通过重复的随机选择来统计中奖概率。

    clear;clc;
    
    n=5000; %重复次数
    select_right=unidrnd(3,[1,n]); %中奖的数字
    select_first=unidrnd(3,[1,n]); %初次选择的数字
    doors=[];
    result=[];
    for i = 1:length(select_first)
        doors=[1 2 3];
        
        rest=doors(doors!=select_first(i));
        
        if (select_first(i)==select_right(i));  %是否第一次选择的门就中奖了
            s = unidrnd(2); %主持人随机选出一个,(序号)
            select_second = rest(rest!=rest(s));  %选择主持人选中的另一个门
        else
            t = rest(rest!=select_right(i)); %主持人选择非中奖的数字  
            select_second = rest(rest!=t);  %改选
        end    
        
        result=[result select_second];    
    
    end
    
    printf("probability if change: %d\n",sum(select_right==result)/n); %换门的中奖概率
    printf("probability if not change: %d\n",sum(select_right==select_first)/n); %不换的中奖概率
    

    运行结果:
    probability if change: 0.6668
    probability if not change: 0.3332
    运行结果说明如果换门中奖概率约2/3,不换约1/3,
    还真是这么回事。可是我一开始的想法有什么问题吗?

    相关文章

      网友评论

          本文标题:三扇门

          本文链接:https://www.haomeiwen.com/subject/hrfgtxtx.html