换还是不换,这是一个问题

概率题:

给你三个盒子,其中一个放了东西,你指定一个,然后打开另外两个中的一个,发现是空的,问:你是否要改变你的选择。

网上的答案说应该改变选择,这样概率更大些。

那么请问,在发现另外一个盒子为空的情况下,选择的盒子中有东西的概率P是多少?改变后选对的概率又是多少【当然是1-P】?

我觉得用不着换,概率当然都是1/2。

我编写了一个程序模拟这个问题。这个程序显示invalidcountselcount misscount各占1/3,即selcount ~ misscount,证明了我的判断。

#include
 
<stdlib.h>
#include
 
<time.h>
#include
 
<iostream>


int
 thatbox; 
//
 
有东西的盒子,值可以为
0
,1,2
int
 selbox; 
//
 
选中的盒子,值可以
0
,1,2
int
 voidbox; 
//
 
空盒子,值可以为

0,1,2,但肯定和selbox不一样。
int
 invalidcount = 0; 
//
 
不符合条件的试验次数。即空盒子里面有东西。
int
 selcount = 0; 
//
 
选中的盒子里面有东西的次数。
int
 misscount = 0; 
//
 
剩下的那个盒子里面有东西的次数。
void
 change_or_not_problem()
{
        
 
// 
把东西随机放入一个盒子
        thatbox = rand()%3;
        
 
// 
选择一个盒子
        selbox = rand()%3;
        
 
// 
挑选一个盒子打开
        voidbox = (selbox + 1 + rand()%2)%3;
        
 
// 
如果打开的盒子有东西,那么这次试验无效
        
 
if
 (voidbox == thatbox)
        {
                ++invalidcount;
                
 
return
 ;
        }
        
 
if
 (selbox == thatbox)
                ++selcount;
        
 
else
                ++misscount;
}


int
 main () {
        
 
using
 
namespace
 
std;
        srand(time(
 
nullptr
 ));
        
 
for
 (
int
 
i=0; i<10000; ++i)
                change_or_not_problem();
        cout << 
“selected count = “
 
<< selcount << endl;
        cout << 
“miss count = “
 
<< misscount << endl;
        cout << 
“invalid count = “
 
<< invalidcount << endl;
        
 
return
 0;
}

点赞