猜数字游戏代码游戏

一个猜数游戏
1987年的某一天,《金融时报》上出现了一则奇怪的竞猜广告,邀请银行家和商人参加一个数字竞猜比赛,参与者必须在0到100之间选择一个整数寄回去。谁猜的数字最接近所有数字之和的平均数的三分之二,谁就是赢家。如果猜中数字的人不止一个,那么就以随机抽签的方式选出唯一一个赢家,奖品是一套协和航空从伦敦到纽约头等舱的往返机票,价值超过一万美元。
想象一下,如果你也参加了竞猜的话,你会怎么选择数字呢?根据传统经济学的观点,你会理性地选择一个数字,可是,怎么选才是理性的呢?
你显然不知道其他人会选择哪个数字,这样一来,想要理性也有点困难。所以,你可能一开始会做一个大概的猜测:也许人们选择的数字在0到100整个范围之间随机变化,这样的话,平均数大约是50,所以33会是个不错的选择,因为33接近50的三分之二。你满怀期待地寄去了这个数字,接着又来了一个明显的问题--如果其他人都和你想的一样,情况又会怎样呢?
如果真是那样的话,那么其他人也会选择一个33左右的数字,所以平均数就不是50,而是33左右,那么33的三分之二就是22。你可以把这个数字寄回去,或者按照这一思路再仔细想一想。如果其他人又和你想的一样,那么平均数就是22了,所以最佳的猜测实际上在15左右。
以此类推下去,你想得越多,数字就会变得越小,而真正的疑问也来了,你究竟该停在哪个数字上?继续按照这一逻辑推理,你会开始怀疑每个人都会选择一个非常小的数字,甚至可能就是0。而实际上,0这个数字也是一个符合数学逻辑的答案,因为0的三分之二还是0,每个人都选择0的话,那么每个人都猜对了。理性的经济学家会选择0,但是除了他们之外,其他人会这么选吗?
结果是,的确还有其他人选择了0,但是并不多。这个奇怪的猜数游戏是由芝加哥大学的理查德&泰勒设计的,当他把寄来的数字列成表格的时候,他发现,有少数一部分人真的选择了0,而很多人选的都是33和22--逻辑思维停在了第一步或第二步。最后的统计结果,平均数是18.9,赢家选择的是13。
泰勒设计这个猜数游戏主要是为了说明,理性的经济学家头脑中的人的行为方式与现实生活明显不符。认为人们应该选择数字0的想法来自于经济学的传统理论,也就是大家都知道的&博弈论&(gametheory),它讨论的是理性的人在竞争性的环境中,怎样能有最佳的行为表现。
二十世纪50年代,数学家约翰&纳什(JohnNash)--近来电影《美丽心灵》(ABeautifulMind)故事主人公的原型--证明了,一个理性的人在得知其竞争对手也都是理性的情况下,很多时候他总是能找到一个&最佳&策略加以运用。所以,在泰勒的猜数游戏中,最佳的策略就是选择0。因为,如果每个人都是完全理性的,那么他们都会选择同样的数字,而0是唯一一个等于平均数三分之二的数字。
但问题是,理性的经济学家来参与这个竞猜的话,就一定会输。事实上那么猜既不理性也不聪明,不过只是天真烂漫而已,尤其是他们把人的行为想得太简单了。一个经济学家能够尽量让自己变得理性,但是他却无法控制其他人和他一样理性。
这个竞猜游戏不是一个纯粹的数学问题,因为最佳数字是根据所有人选择的实际数字而定的,而谁也不知道人们会出于多么疯狂的理由来选择那些数字。结果,这个竞猜游戏和理性一族的博弈论扯不上一点关系,但非常重要的是,我们每天都会遇到和这个游戏相似的实际情况,仅仅依靠推理和逻辑是根本应付不了的。
举个例子,早晨开车去上班,为了避免交通堵塞,你会想要选一条别人不会走的路。但是,其他人也会这么想。结果你的想法就变成,许多人都在尝试做一些大多数人不会做的事,但理性地说,这是不可能的,因为人们无法猜透别人的心思。再想想股票买卖,因为牵涉到大笔的资金,所以你想理性地采取行动应该总能赢利吧。
其实不然。经济学中有个古老的论点,认为股票的价格必定反映了其公平合理的价值,因为投资者是理性的,他们会买进那些价值低估的股票,使股价上涨,或者会卖出那些价值高估的股票,直到股价跌落为止。理性的投资者之所以这么做,是因为在这一过程中,他们可以轻松挣到钱。
不过,事情没这么简单。假设某些聪明人发现个别股票的价格非常低,为了轻松获利,他们或许会理性地买进持仓,想着等股价涨到应有价值的时候,再卖出赚上一笔。但是,就像泰勒的猜数游戏中理性的经济学家一样,他们对股票的看法也许是对的,但是却把人想得太简单了。因为还存在着非理性的投资者,他们完全得不到咨讯,也没有好的理由要持有这只股票,觉得自己会输钱的他们就继续抛售,使得股价跌得更低。无论这看起来有多可笑多恼人,他们还是会这么做。
所以,在股票市场中一个绝对理性的投资者也会赔本。因为股市的运作是建立在人们的信念上的,而不同的人又有不同的信念和想法,所以在这种情况下还要力求做到理性,反而就太奇怪了。
如果认为克利夫兰的气温可以影响股市的人足够多,那么这个城市的温度真的就能影响股市,所以作为一个明智的投资者,则最好在买卖股票之前,先查询下克利夫兰的天气情况,哪怕这听起来是多么&不理性&。说穿了,理性只是一个某些时候可以使用的工具而已,甚至这个工具只能停留在理论的层面。
或许还会有人希望能保全理性选择的理论,但是对于他们来说,继续探索下去只会使情况变得更糟。甚至有时候,在做出一个符合逻辑的决定之前,连孩子都会做的计算,我们大多数人反而不会了。所以看来,出错是我们人类甩不掉的遗传基因。
(责任编辑:新青年)
更多有关的文章
赞助商链接
每日重点推荐
七十多年前,一位挪威青年男子漂流来到法国,他报考著名的巴黎音乐学院。考试的时候,...
赞助商链接
一周热点文章
乐读随机推荐
曹明华【】
谢勤龙【】
Katerina【】
迟子建【】
在线阅读专题VB的猜数小游戏
VB的猜数小游戏
有两个text窗口:text1.text、text2.text&,滚动显示1到100的整数,用户单击左大或右大,猜对了text3.text就显对了,反之…&& 需要三个按钮:左大、右大、开始、还有一个计时器,其实我已经做好了,我运行的时候按下开始计时器开始计时,text1.text好text2.text都在动,我点左大的时候,却出现了这样的问题:先出现了你错了/你对了,然后才在text3.text里出现数字。这是为什么,我的要求是点左大先出现左大的数字,然后才出现你对了,反之你懂得…&
兄弟们为了这20分,努力地答题吧!
补充:我再补充一个问题吧:是一个字体格式的程序。截图如下:
截图给你看看,就知道了,我的问题就是字号这里出问题了,代码是对的,怎么会运行起来提示有误呢?代码如下:Private Sub Command1_Click()If Combo1.Text = "宋体" ThenLabel2.FontName = "宋体"ElseIf Combo1.Text = "隶书" ThenLabel2.FontName = "隶书"ElseLabel2.FontName = "楷体_GB2312"End IfIf Combo2.Text = "常规" ThenLabel2.FontBold = FalseElseLabel2.FontBold = TrueEnd IfIf Option1.Value ThenLabel2.ForeColor = RGB(255, 0, 0)ElseIf Option2.Value ThenLabel2.ForeColor = RGB(0, 255, 0)ElseLabel2.ForeColor = RGB(0, 0, 255)End IfIf Check1.Value = 1 ThenLabel2.FontUnderline = TrueElseLabel2.FontUnderline = FalseEnd IfIf Check2.Value = 1 ThenLabel2.FontStrikethru = TrueElseLabel2.FontStrikethru = FalseEnd IfIf Combo1.Text = "小四" ThenLabel2.FontName = "小四"ElseIf Combo1.Text = "小三" ThenLabel2.FontName = "小三"ElseLabel2.FontName = "小二"End IfOption1.Value = FalseOption2.Value = FalseOption3.Value = FalseEnd Sub
Private Sub Command2_Click()EndEnd Sub
Private Sub Form_Load()Combo1.AddItem "宋体"Combo1.AddItem "隶书"Combo1.AddItem "楷体"Combo1.Text = "宋体"Combo2.AddItem "常规"Combo2.AddItem "加粗"Combo2.Text = "常规"Combo3.AddItem "小四"Combo3.AddItem "小三"Combo3.AddItem "小二"Combo3.Text = "小四"Label2.ForeColor = RGB(0, 0, 255)Option1.Value = FalseOption2.Value = FalseOption3.Value = TrueEnd Sub
这是界面布局,当然,你可以弄好看一些!
代码如下:
Dim i As Integer, j As Integer&& Private Sub Timer1_Timer()i = Val(Rnd * 100) + 1j = Val(Rnd * 100) + 1Text1.Text = Str(i)Text2.Text = Str(j)End SubPrivate Sub Command1_Click()Timer1.Enabled = FalseIf i & j Then& Text3.Text = "很遗憾,你猜错了"&Else& Text3.Text = "恭喜,你猜对了"End IfEnd SubPrivate Sub Command2_Click()Timer1.Enabled = TrueTimer1.Interval = 10Text1.Visible = True'滚动显示Text2.Visible = True'同上Text3.Text = ""End SubPrivate Sub Command3_Click()Timer1.Enabled = FalseIf i & j Then&& Text3.Text = "很遗憾,你猜错了"&Else& Text3.Text = "恭喜,你猜对了"End IfEnd Sub
其他回答 (1)
说说你第一个程序的问题吧。。就是你点击的那一段代码是放在了一起。。因为他先执行了上一段代码才执行了下一段代码。。运行效果就看到先执行的是你说的先出现你猜错或猜对等~
相关知识等待您来回答
编程领域专家传统的猜数字游戏,在对话框中输入任意四位数,然后根据提示猜出正确的数字是什么。
复制地址:
1.按键操作
详见游戏中的规则说明。
2.如何开始
加载完成后直接开始游戏.
3.游戏目标
根据提示猜出正确的数字。
大家还喜欢
登录7k7k发现更多乐趣
7K7K网页游戏
7K7K儿童游戏
法律顾问:北京市诺恒律师事务所
京公网安备
游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照来信告知,本网站将应您的要求删除。
7k7k小游戏温馨提示:适度游戏娱乐,沉迷游戏伤身,合理安排时间,享受快乐生活……C语言程序设计 猜数字游戏
C语言程序设计 猜数字游戏 30
用户从键盘输入4位不重复的数,来匹配计算机给出的4位随机数,若数字和位置均等同,表示用户赢了。每猜一次,计算机均给出提示信息(x,y),x表示数字、位置都匹配的个数,y表示数字匹配但位置不匹配的个数。 
给定H键作为帮助键,按下后均能得到详细信息,如:第一位数字正确,第2,3为数字位置不对等。 
给定K键作为管理键,按下后可以查看计算机所给的4位数,但查看前需要输入密码,密码自定。 
设置游戏分值,将每一次猜的结果以分值的形式给出,如:初始分值1000分,每猜一次扣100分,若猜对一个数,奖励20分。 
将得分最高的前3位的分值在每次开始新游戏前显示出来,同时,在每次游戏结束后将前3位的分值存盘,文件名自定。

哪位高人赐教,帮忙写一下,急用,谢谢了!
#include&iostream&
#include&cmath&
#include&ctime&


int x,a[8],m,n,i,j,k=0;

void putin()
{
	while(k==0)
	{
		cout&&&请输入4个不同的数字&&&
		k=1;
		for(i=4;i&=7;i++)
		cin&&a[i];
		for(i=4;i&=7;i++)
			for(j=i;j&=6;j++)
				if(a[i]==a[j+1]) 	k=0;
	}
}

int main()
{	
		
	srand(time(0));
	while(k==0)
	{
		k=1;
		x=rand()%10000;
		a[0]=x%10;
		a[1]=(x%100)/10;
		a[2]=(x%;
		a[3]=x/1000;
		for(i=0;i&=3;i++)
			for(j=i;j&=2;j++)
				if(a[i]==a[j+1]) k=0;
	}
	//for(i=0;i&=3;i++)						//输出答案
	//	cout&&a[i];
	while(1)
	{
		k=0;
		m=n=0;
		putin();

		for(i=0;i&=3;i++)
		{
			if(a[i]==a[i+4]) n++;
			for(j=0;j&=3;j++)
				if(a[i]==a[j+4]) m++;
		}
		cout&&n&&&A&&&m&&&B&&&
		if(n==4) 
		{
			cout&&&right&&&
			
		}
	}


	return 0;
}

提问者 的感言:这是winc的 要是有TC的就更好了
其他回答 (1)
把随机数放数组里 再用for循环遍历用户输入的
相关知识等待您来回答
编程领域专家《猜数游戏》单元测试
猜数游戏单元测试
一、连连线。二、数一数,填一填。三、涂色。四、把不同类的圈起来。五、在每一个□中不同的是什么?用&&&画出。六、有关系的东西用线连起来。七、比一比,谁算得又对...日期:这是小学数学第一册第一二单元测试题,只要你多加练习,你一定会取得好成绩。相信这些试题一定可以帮助大家更好的完成自己的学业,希望同学们好好学习,为以后打实基矗认真做,加油...日期:这是小学数学第一册第九单元测试题,只要你多加练习,你一定会取得好成绩。相信这些试题一定可以帮助大家更好的完成自己的学业,希望同学们好好学习,为以后打实基矗认真做,加油噢![NextPage][Next...日期:一年级学生刚进入小学学习,新的学习和生活对孩子们来说充满了好奇和有趣,这是本网收集的苏教版数学一年级上册单元测试题,希望同学们多加练习,培养良好的学习习惯,为将来的学习打好基础!日期:一年级学生刚进入小学学习,新的学习和生活对孩子们来说充满了好奇和有趣,这是本网收集的青岛版数学一年级上册第九单元测试卷,希望同学们多加练习,培养良好的学习习惯,为将来的学习打好基础...日期:一年级学生刚进入小学学习,新的学习和生活对孩子们来说充满了好奇和有趣,这是本网收集的青岛版数学一年级上册第一单元测试卷,希望同学们多加练习,培养良好的学习习惯,为将来的学习打好基础!日期:根据最近几年的最常出现的考试题型,以及最常出现的考点,本网为大家找了一些包含考试考点的试卷,相信这些试题一定可以帮助大家更好的完成自己的学业,希望同学们认真做题,为以后的数...日期:一年级上册数学1-2单元检测试题,大家赶紧测测对第一单元和第二单元数学知识点掌握了多少吧。日期:一、认识钟面。(6分)1、 钟面上有( )个数,长针是( ),短针是( )。二、连连看。(16分)6时 5时 4时 9时三、看钟面写时刻。(16分)( )时 ( )时 ( )时 ( )时四、我会算。(18分)10+8=...日期:一、在□里填上合适的数。(6分)二、填一填。(20分,前面每格1分,第5题每格2分。)1、17是由( )个十和( )个一组成的。2、1个十和4个一组成( ),2个十是( )。3、一个数从右边起第一位是3,第二位是1,...日期:一、比一比,看谁算得又对又快。(20分)14+4 =16-5 =9+6 =7+9 =10+10 =19-8 =3+7 =5+10 =13-6 =11-5 =16-9 =8+8 =3+14 =17-8 =7+6 =7+7 =12-8 =15-8 =8+3 =1...日期:一、比比、涂涂1.谁最高?在她旁边的()里画&&&。谁最矮,在她旁边的()里画&&&。( ) ( ) ( )2.请给长的纸片涂上绿色。 3.把少的一行水果涂...日期:一、 填空题(1-3每题 4分, 第4小题 5分, 第5小题 6分, 6-7每题 8分, 第8小题 10分, 共 49分)1. 在○里填上=、>或<.5○5-0 8-2○3 6+2○3+4 4-3○72. 把下面各数按要求排一排....日期:一 填空题( 10分 )△△△ (1)3比4少__________□□□□ (2)6比4多__________●●●●●●二 其它题(第1小题 8分, 2-8每题 10分, 第9小题 12分, 共 90分)1. 把同类的玩具用线连起来.2. 在动物类上打...日期:一 其它题(1-6每题 6分, 7-8每题 8分, 9-10每题 12分, 第11小题 24分, 共 100分)1. 哪种图形多,在多的一行打&.○○○○○ ( )☆☆☆☆☆☆( )2. 哪种图形多,在多的一行打&radic...日期:
英语学习- -  -  - -  -  - -  -  - - -  -  - -  -  - -  -  - - -  -  -
数学学习-  - - -
 - - - - - - - -

我要回帖

更多关于 数字游戏 的文章

 

随机推荐