林俊杰上综艺节目:一个算法

来源:百度文库 编辑:高校问答 时间:2024/04/30 05:26:33
月薪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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天

我不同意一楼的,如果严格推理而来,这道题根本就是个错题!

如果非要说个答案的话。9月1日到是有点道理啊。

答案是6月4日,开始愣是没弄明白为什么是6月4日,花了点时间仔细想了下终于弄明白了:

M的值可能为3(3),6(2),9(2),12(3)
N的值可能为4(2),1(2),5(2),7(1),2(1),8(2)

第一句:小明说:如果我不知道的话,小强肯定也不知道。
分析,小明只知道M的值,做假设,若小强已知的N的值是以上几组数个单独出的7和2的话,小强不通小明就能猜出老师的生日了,而小强要通过小明才知道,则可以排出N出现为单数的两个日期6月7与12月2日。
则剩下的为:
3月4日 3月5日 3月8日
6月4日

9月1日 9月5日

12月1日 12月8日
M的值可能为3(3),6(1),9(2),12(2)
N的值可能为4(2),1(2),5(2),8(2).
第二句:小强说:本来我也不知道,但是现在我知道了。
分析:小强是知道日,也就是N的值,所么只有当以上出现的M的出现次数为单数的时候,小强才能确定:而以上月,也就是M出现次数为单数的只有6,所以答案,小强猜出来是6月4号
第三句:小明当然也知道啦.
啊啊啊!!!

t第一句有些多余,判断6月7日和12月2日是错的完全是依靠第二句中的"我本来不知道(小强)"
因为小明不知道小强的N值,他的假设对解题没有意义,其他的我都同意一楼的,很难得,分析得又快又准确.
是题出得不太高明,

这么简单的题啊:张老师把M值告诉了小明,把N值告诉了小强,小明和小强两人一合作不就出来了吗,合作愉快。