平凉最大的真金板厂家:要动脑筋的,聪明的程序员进来

来源:百度文库 编辑:高校问答 时间:2024/04/29 11:19:29
月薪5万,微软中国研究院最新面试题

小明和小强都是张老师的学生,张老师的生日是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. 小明说:如果我不知道的话,小强肯定也不知道, 那么:6月7日和 12月2日 就被剔除
2. 小明说:如果我不知道的话,小强肯定也不知道+小强说:本来我也不知道,但是现在我知道了
那么:只有6月4日是唯一确定的

??????????为什么是6月4日??????????
我都不是那么蠢的人啊,怎么我还是看不明白呢?

张老师的生日9.1
1)“小明说:如果我不知道的话,小强肯定也不知道”推出:M=3或9
因为小明的话说明他能肯定小强拿不到7或者2。说明小明他拿的不是6或12所以他才可以肯定。

2)小强说:本来我也不知道,但是现在我知道了 推出 N 只能是1、4、8
因为小强从1)中推出M是3或9,现在小强知道了,说明N不可能是5,因为3.5和9.5无法让他确定下来,他就不能说“知道了”

这样前两句话推出了M=3或9,N=1或4或8

3)小明说:“那我也知道了”=>9.1
如果M=3,则小明通过2)只能知道在是3.4或3.8还是无法知道,
而只有M=9,小明才能说“那我也知道了”

三句话都很重要!!!第三句话是必需的!

========
这是我自己的推理,因为和你公布的答案不一样,希望有人反驳!

答案是:9月1日。

1.小明说:“如果我不知道的话,小强肯定也不知道”。
这句话的潜台词实际上是:“我应该猜对了,如果我猜错的话,小强肯定不知道”。但小明还是不确定自己究竟猜对没,需要小强来印证。M取什么值能让小明这么说呢?显然6和12不可取,如果M为6或12,N就有可能是2或7——小强凭2或7一个数字就能得知张老师的生日。则M只可能是3或9,而N只能在1、4、5、8中取值。
如果M是3,N可以取三种值,结果成了“如果小明不知道,小强有可能知道(2-4,3-8),也有可能不知道(3-5)。”,在这种情况下,小明说“如果我不知道的话,小强肯定也不知道”是不符合事实的,小明不足以如此自信的这样说。
如果M是9,则小明就知道N只能是1或者5。此时,小明的猜测正是N=1,而N究竟是不是1,小明也不确信,如果N不是1而是5,则就出现了小明说的“如果我不知道的话,小强肯定也不知道”。至此,实际上小明已经知道了,结果只有两种情况,只等小强来确认N是不是5。

2.小强说:“本来我也不知道,但是现在我知道了”。
小强说“本来我也不知道”,验证了N确实不是2或者7;同时,小强也知道了“M不是6或12,M只剩下3和9可取”。若N是5,则小强应该说“本来我也不知道,现在我还是不知道”。根据第一节的推断,N=1,所以小强才能说“本来我也不知道,但是现在我知道了”。

3.小明说:“那我也知道了”
小明就等着小强的一句话了,不管小强怎么回答,小明都会知道正确答案。如果小强说“我还是不知道”,那么小明依然可以知道“只有N=5会让小强茫然”,因此答案是9月5日;如果小强说“我知道了”,那么就必然是9月1日。

其实,自始至终,小明都是明白的,他只需要小强说句华验证他的猜测,对小明而言,是个非A即B的选择题。因此,按照题目本身的故事发展线索,小明的第三句话是可以不用的,很多人推导的时候却用上了这个条件——那样就有点像做数学题了。

从其他找来的,看看能明白吗?

我的分析如下:
首先这个组数后 3月4日 3月5日 3月8日
6月4日 6月7日
9月1日 9月5日
12月1日 12月2日 12月8日
在对话中可知,他们两个一开始看过后,没有即克说出答案,这说明,月份M的数出现次最小出现两次.同理,日号N:也最小出现两次,所以从N中排除了出现一次的数,7日和2日(6月7日和12月2日).所以余下:
3月4日 3月5日 3月8日
6月4日
9月1日 9月5日
12月1日 12月8日
余下的为以上的数.正因为这样,除了6月4日,到目前为止为出现一次的月份M为6,即排除后,再重新分析,发现月份的M出现的次数只有6为出现一次,其他出现最小两次,所以除了月份为6的数,跟本就不可能选择其它(因为如果选择其他的话,他们两跟本就不可能知道老帅的生日),因此他们就是这样知道了老师生日.6月4号

我认为是6月4日
刚一开始小明肯定不知道,而小强却有可能已知道,因为6月7日和12月2日的日是特殊的。
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道
可排除6月7日和12月2日(公认吧)
再来仔细体会一下“小明说:如果我不知道的话,小强肯定也不知道 ”:其实小明的话暗示了“小强知道的话,那我也应该知道了”
请看现在还剩下:
3月4日 3月5日 3月8日
6月4日
9月1日 9月5日
12月1日 12月8日
小强说:本来我也不知道,但是现在我知道了 (联系小明的话可推出是6月4日,若不是6月4日,光凭小强的日还不可能知道;若是6月4日则小明已知道:若不是6月4日的话小明也还不知道,其他月的日期都至少有两个)
小明说:哦,那我也知道了 (验证了上面括号内我的猜想)
知道了答案,回过头来看看:
排除了有特殊日的6月7日和12月2日,凭小明的月已然知道答案了,而小强还不知道,故小明能肯定地说出“如果我不知道的话,小强肯定也不知道”
小强说“本来我也不知道”(够了,小明已经知道了)
小强很聪明,听出了小明的言外之意,说“但是现在我知道了”
其实第三句只起验证作用,凭1, 2句便可推出是6月4日,故“理由”中未指出。
很经典的题!由于时间仓促,难免有疏漏,请斧正!

张老师的生日9.1
1)“小明说:如果我不知道的话,小强肯定也不知道”推出:M=3或9

不能推出:M=3或9 只能推出 n<>7 & n<>2