让程序来猜猜那个传说中经典的概率题
来源:互联网 发布:成都行知小学地址 编辑:程序博客网 时间:2024/05/21 06:11
题目如下;:
public class Check
{
public static void main(String []args)
{
//0车 1羊1 2羊2
ArrayList arrayListc=new ArrayList(1000000);
ArrayList arrayListn=new ArrayList(1000000);
Check check=new Check();
for(int i=0;i<1000000; i++)
{
int iFirst=check.getFirstCheck();
int iComp=check.getCompCheck(iFirst);
int ic= check.getChangedCheck(iFirst,iComp);
if(ic==0) arrayListc.add(new Integer(ic));
int in=check.getNoChangeCheck(iFirst);
if(in==0) arrayListn.add(new Integer(in));
}
System.out.println("no change"+arrayListn.size());
System.out.println("change "+arrayListc.size());
}
//获得0-i之间的数
public int getNumber(int i)
{
return new Random().nextInt(i);
}
//第一次选择
public int getFirstCheck()
{
int i=getNumber(3);
return i;
}
//主持人选择
public int getCompCheck(int i)
{
if(i==0)
return getNumber(2)+1;
else if(i==1)
return 2;
else
return 1;
}
//如果换第一次选择
public int getChangedCheck(int iFirst,int iComp)
{
return 3-iFirst-iComp;
}
//不换第一次的选择
public int getNoChangeCheck(int iFirst)
{
return iFirst;
}
}
程序执行5次的结果如下
no change333587
change 666413
no change332892
change 667108
no change333028
change 666972
no change331889
change 668111
no change333206
change 666794
嘿嘿所以说换还是比较明智的...
假设你在进行一个游戏节目。现给三扇门供你选择:一扇门后面是一辆轿车,另两
扇门后面分别都是一头山羊。你的目的当然是要想得到比较值钱的轿车,但你却并
不能看到门后面的真实情况。主持人先让你作第一次选择。在你选择了一扇门后,
知道其余两扇门后面是什么的主持人,打开了另一扇门给你看,而且,当然,那里
有一头山羊。现在主持人告诉你,你还有一次选择的机会。那么,请你考虑一下,
你是坚持第一次的选择不变,还是改变第一次的选择,更有可能得到轿车?
《广场杂志》刊登出这个题目后,竟引起全美大学生的举国辩论,许多大学的教授
们也参与了进来。真可谓盛况空前。据《纽约时报》报道,这个问题也在中央情报
局的办公室内和波斯湾飞机驾驶员的营房里引起了争论,它还被麻省理工学院的数
学家们和新墨哥州洛斯阿拉莫斯实验室的计算机程序员们进行过分析。
现在,请你来回答一下这个问题。
用java写的程序.
import java.util.*;public class Check
{
public static void main(String []args)
{
//0车 1羊1 2羊2
ArrayList arrayListc=new ArrayList(1000000);
ArrayList arrayListn=new ArrayList(1000000);
Check check=new Check();
for(int i=0;i<1000000; i++)
{
int iFirst=check.getFirstCheck();
int iComp=check.getCompCheck(iFirst);
int ic= check.getChangedCheck(iFirst,iComp);
if(ic==0) arrayListc.add(new Integer(ic));
int in=check.getNoChangeCheck(iFirst);
if(in==0) arrayListn.add(new Integer(in));
}
System.out.println("no change"+arrayListn.size());
System.out.println("change "+arrayListc.size());
}
//获得0-i之间的数
public int getNumber(int i)
{
return new Random().nextInt(i);
}
//第一次选择
public int getFirstCheck()
{
int i=getNumber(3);
return i;
}
//主持人选择
public int getCompCheck(int i)
{
if(i==0)
return getNumber(2)+1;
else if(i==1)
return 2;
else
return 1;
}
//如果换第一次选择
public int getChangedCheck(int iFirst,int iComp)
{
return 3-iFirst-iComp;
}
//不换第一次的选择
public int getNoChangeCheck(int iFirst)
{
return iFirst;
}
}
程序执行5次的结果如下
no change333587
change 666413
no change332892
change 667108
no change333028
change 666972
no change331889
change 668111
no change333206
change 666794
嘿嘿所以说换还是比较明智的...
- 让程序来猜猜那个传说中经典的概率题
- 《猜猜二次元》重温心中的经典动画片
- 传说中让理科生沉默,让文科生落泪的综合题
- 传说中让理科生沉默,让文科生落泪的综合题
- 传说中程序里的死循环
- 让我猜猜结局
- 【逻辑题】猜猜她的生日
- JVM加载机制你知多少,是否真的知道,来猜猜这题的答案你就知道了。
- 解读传说中计算π的超牛的C程序
- 解读传说中计算π的超牛的C程序
- 解读传说中计算π的超牛的C程序 .
- 让你的java程序飞起来
- 嘿嘿,这就是传说中程序里的死循环呐
- 大家来猜猜这是哪首古诗词?
- 《我的团长我的团》:你要让我来啊,那个犊子不愿意来呀!
- 传说中让理科生沉默,让文科生落泪的文理综合体。文艺程序员面试题
- 海龙的那个程序大四的学长是怎么做出来的???
- 猜猜数的大小
- C#开发终端式短信的原理和方法
- 编写安全的SQL Server扩展存储过程
- Compiling... ,Error spawning cl.exe解决办法
- 轻松控制uClinux嵌入式开发过程一(图)
- 移植是痛苦的
- 让程序来猜猜那个传说中经典的概率题
- 建此博客的缘由
- SQL Server 2000中的触发器使用(续)
- ASP如何获取客户端真实IP地址
- 给SQL Server传送数组参数的变通办法
- 输入一个日期,判断出该月有几天
- 加密解密字符串
- cygwin下启动的时候PATH设置的脚本文件
- 处理分页问题