下面是一个非常有趣的问题,可以测试每个人拿到这个看似简单,但每个人会依据自己的自信,顽固,聪明,要面子等等性格特点,表现出的不同反映,我测试了10个人,结果发现每个人的人性表现都不一样,但基本上是符合他的性格的。
题目是:有三个盒子,其中只有一个盒子里有巨额奖金,请你选择一个,在你选择后,主持人在你没有选择的另外两个盒子里,去掉一个没有奖品的盒子。此时主持人问:你是不是需要改变你的答案?
请问:你是继续坚持你自己的选择,还是选择另一个盒子?
答案:从科学的角度上应该换… … 原理我不解释了,慢慢思考吧,给出概率的算法测试:
public class Change {
public static void main(String[] args) {
boolean[] box=new boolean[3];
int noChangeTrueCount=0;
int changeTrueCount=0;
for(int i=0;i<100000;i++){
for(int j=0;j<3;j++)box[j]=false;
long seed=Change.getRandom(0,100000)+Change.getRandom(97,200000);
int trueIndex=(int)(seed%3);
box[trueIndex]=true;
//do select
long seed1=Change.getRandom(0,100000)+Change.getRandom(57,200000);
int mySelectIndex=(int)(seed1%3);
//exclude false box
int excludeIndex=0;
for(int k=0;k<3;k++){
if(k!=mySelectIndex&&box[k]==false)excludeIndex=k
}
if(box[mySelectIndex]==true)noChangeTrueCount++;
for(int m=0;m<3;m++)
{
if(box[m]==true&&m!=mySelectIndex&&m!=excludeIndex)changeTrueCount++;
}
}
// result
System.out.println("noChangeTrueCount="+noChangeTrueCount+" changeTrueCount"+changeTrueCount);
}
public static int getRandom(int min,int max){
int interval=max-min;
Random ran=new Random();
int random=ran.nextInt(interval);
return random+min;
}
}