读书人

给大家出个智力题传说是微软出的!解

发布时间: 2012-02-20 21:18:24 作者: rapoo

给大家出个智力题,传说是微软出的!!!!!
小明和小强都是张老师的学生,张老师的生日是M月N日,
2人都知道张老师的生日是 下列10组中的一天,张老师把M值告诉了小明,
把N值告诉了小强,张老师问他们知道 他的生日是哪一天

3月4日 3月5日 3月8日
6月4日 6月7日
9月1日 9月5日
12月1日 12月2日 12月8日

1).小明说:如果我不知道的话,小强肯定也不知道
2).小强说:本来我也不知道,但是现在我知道了
3).小明说:哦,那我也知道了


============================
今天一个朋友发给我的,我分析出是6.4号,但他说答案是9.1号[但我上网查了好像此题没有标准答案]。、

我的分析如下,看是不是正确思路,大家一起讨论下:
---------------------------------------------
==========分析:
设小明知道的情况标志为f1,小强标志为f2

由1)可得:
f1=0时,f2=0 [此情况存在的话无意义]
f1=1时,f2=0或1[表示小强可能不知道,也可能知道]

所以:当f1=1,f2=0时,有八种情况[除了6.7和12.2,因为别的 '日 '都不止一种月份情况]
当f1=1,f2=1时,只有一种情况6.4[因为只有6月剩下一个6.4了,别的月份都不止一种 '日 '子情况]
小强知道与不知道的情况做交集运算,得到只剩一种情况:6.4
总之:这句话的意思是说:小明一定知道。如果小明不知道,那就无解了[因为小明不知道的话,小强也肯定不知道]!!

由2)可得:因为由1)就可分析出是6.4,如果小明不说第一句话,小强当然就是“本来我也不知道了”!正是小明说了第一句话,小强才会可能得到只有一种情况的推算。

由3)可得:这句话只是起迷惑作用。因为小明说第一句话时能那么肯定,那说明他说第一句话之前就知道了。


[解决办法]
参考:http://community.csdn.net/Expert/topic/5731/5731276.xml

1.“小明说:如果我不知道的话,小强肯定也不知道”
因为小强不知道,所以N不是4和2。
因为小明知道小强不知道,所以M不是6和12。
剩下3.4,3.5,3.8,9.1,9.5是可能的。

2.“小强说:本来我也不知道,但是现在我知道了”
所以N不是5,剩下3.4,3.8,9.1。

3.“小明说:哦,那我也知道了”
所以N是9。

答案就是9月1日了。
[解决办法]
这题很老了,是9月1号
[解决办法]
1).小明说:如果我不知道的话,小强肯定也不知道
这就说明小明知道的月份里边的日期里没有唯一值,有唯一值的话他就不能肯定的说小强不知道了.这样,就排除了6月和12月,因为着两个月里都有唯一值日期2和7
2).小强说:本来我也不知道,但是现在我知道了
小强听小明说完后,也就排除了6,12月,这时它知道了,这就又排除了他的日期在着两个月里的日期是多个值的情况,既排除了9.5号和3.5号两个日期,这时省 3.4,3.8 9.1三个日期了.
3).小明说:哦,那我也知道了
这时就排除了月份里有两个日期的情况,既实际的答案为9.1

[解决办法]
这个题目有问题
所以才会有两个答案

第一句话:“如果我不知道”
什么叫做“如果我不知道”??这句话什么意思??
此话二解
1我当然是不知道的,小强肯定也不知道--如楼上所说
2如果我猜错了的话,小强肯定也不知道--小明猜6.7,正解6.4

读书人网 >C语言

热点推荐