三扇门

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

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

一开始,我认为 题目相当于主持人排除一个门后,剩余两个门,所以换与不换都是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,
还真是这么回事。可是我一开始的想法有什么问题吗?

你可能感兴趣的:(三扇门)