猜数字(猜数字游戏编程c语言)

  一个数学老师有三个非常喜欢的学生甲、乙、丙,这三个学生均非常聪明。一天数学老师给他们出了一道题,数学老师在每个人脑门上贴了一张纸条(每个人可以看见另两个数,但看不

本文最后更新时间:  2023-05-04 10:04:08

  一个数学老师有三个非常喜欢的学生甲、乙、丙,这三个学生均非常聪明。一天数学老师给他们出了一道题,数学老师在每个人脑门上贴了一张纸条(每个人可以看见另两个数,但看不见自己的)并告诉他们,每个人脑门上的纸条都写了一个正整数,且某两个数的和等于第三个数。

  数学老师问第一个学生:“你能猜出自己的数吗?”甲回答:“不能。”数学老师再问乙,乙回答不能。数学老师再问丙,丙同样回答不能。数学老师再回过头问甲,甲还是回答不能。数学老师第二次问乙,乙回答的同样的是不能。这时候丙回答道:“我猜出来了,我的数是144。”数学老师很满意地笑了。请问您能猜出另外两个人脑门上贴的数吗?

答案:36和108。思路如下:首先说出此数的人应该是两数之和的人,因为另外两个加数的人所获得的信息应该是均等的,在同等条件下,若一个推不出,另一个也应该推不出。(当然,我这里只是说这种可能性比较大,因为这毕竟还有个回答的先后次序,在一定程度上存在信息不平衡。)另外,只有在第三个人看到另外两个人的数一样时,才可以立刻说出自己的数。以上两点是想根据题意可以推出的已知条件。如果只问了一轮,第三个人就说出144,那么根据推理,可以很容易得出另外两个数是48和96,怎样才能让老师问了两轮才得出答案了,这就需要进一步考虑:甲:36(36/152)乙:108(108-180)丙:144(144/72)括号内是该同学看到另外两个数后,猜测自己头上可能出现的数。现推理如下:甲,乙先说不知道,理所当然,丙在说不知道的情况下,可以假设如果自己是72的话,乙在已知36和72条件下,会这样推理:我的数应该是36或108,但如果是36的话,丙应该可以立刻说出自己的数,而丙并没说,所以应该是108。然而,在下一轮,乙还是不知道,所以丙可以判断出自己的假设是假,自己的数只能是144。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。