答案写得比较长,希望楼主耐心看完。
三扇门后的奖品可能情况为(羊,羊,车);(羊,车,羊);(车,羊,羊)。既然第一次选是瞎蒙。不妨假设选得是第一扇门。如果主持人告诉一扇门后是羊。相当于奖品情况变为(羊,车);(羊,车);(车,羊)。因为第一次选择更容易选择到第一扇门为羊的情况(开始的三种情况里,第一扇门是羊的有两个,所以更容易选到羊),而这时候改变选择就可以得到车。也就是说,改变选择更容易得到车。(因为改变选择后,奖品里有两个车一个羊,相反若不改变,则是两个羊和一辆车,所以改变选择好)
事实上有三种情况 你选的是车 羊A或羊B
而当你的选择唯一时 剩下的是一个全排列的概率问题 就是说假如你选的是羊A 2号门可以是车 也可以是羊B有两种情况 同理不管已选的是什么都有两种情况所以总共六种你选到车的概率是三分之一 而主持人打开三号门是羊让你在潜意识里排除了一种情况 其实那扇门编号是三 也可以编号是二 不影响最后的概率 换句话说 你有三种选择 a b 或车 在已经确定三号门是羊的情况下只有你选的是a 或b换了之后都会赢 你选到车换了之后才会输 所有换完赢得概率是三分之二 忽略所有外在因素 你知不知道三号门是羊完全不影响概率 换了之后赢得概率永远是三分之二 只用数学判断 而数学不会骗人
static void Main(string[] args)
{
int count1 = 0;
int count2 = 0;
Random random = new Random();
for (int i = 0; i < 1000; i++)
{
int select = random.Next(3);//小明的选择
int correct = random.Next(3);//正确的选择
if (select == correct)
{
count1++;
}
}
for (int i = 0; i < 1000; i++)
{
int select = random.Next(3);//小明的选择
int correct = random.Next(3);//正确的选择
int del = random.Next(3);//删除的
while (del == select || del == correct)
{
del = random.Next(3);
}
int newSelect = random.Next(3);//重新选择的。
while (newSelect == select || newSelect == del)
{
newSelect = random.Next(3);
}
if (newSelect == correct)
{
count2++;
}
}
Console.WriteLine("小明1000不重新选择选对的次数:"+count1);//小明重新不选择
Console.WriteLine("小明1000重新选择选对的次数:" + count2);//小明重新选择正确的概率。
Console.ReadLine();
}
实际上,三选一,正确率是三分之一,错误几率是三分之二,这个玩法就是你一开始只有选错才可能玩到最后得到奖品,而你一开始选错的几率就是三分之二!
坚持不变,因为主持人会想:你会换门,所以把车放在A门,你选择A门,就能得车