概率题:
给你三个盒子,其中一个放了东西,你指定一个,然后打开另外两个中的一个,发现是空的,问:你是否要改变你的选择。
网上的答案说应该改变选择,这样概率更大些。
那么请问,在发现另外一个盒子为空的情况下,选择的盒子中有东西的概率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;
}