跳至正文

微软月薪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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天

—————————————————————-
一下是网友的一些推理过程

看了后我选6月4日

小明说:如果我不知道的话,小强肯定也不知道
说明N不是唯一的这样就除去了6月7日和12月2日
3月4日 3月5日 3月8日
6月4日
9月1日 9月5日
12月1日 12月8日

这时小强说:本来我也不知道,但是现在我知道了
说明除去6月7日和12月2日后答案是唯一的了(小强知道这时小明还不知道)

小明说:哦,那我也知道了
这时小明知道了除去6月7日和12月2日后答案是唯一的了


解答详细推理步骤:

老师的生日的范围:
3月4日 3月5日 3月8日
6月4日 6月7日
9月1日 9月5日
12月1日 12月2日 12月8日

1.『小明说:如果我不知道的话,小强肯定也不知道』
首先,我不太能理解『小明说:如果我不知道的话,』这句话。由于每个月份都有至少2个不同的日期,显然小明是只知道月份 M, 而不能确定 N 是 M月当中的哪一个。那小明语中的“如果”是什么意思?
我认为小明是“不知道”的,然后从小明说“ 小强肯定也不知道”,推理出,小明知道的月份 M 为 3月 或者 9月,原因如下:
3月4日 3月5日 3月8日
6月4日 6月7日
9月1日 9月5日
12月1日 12月2日 12月8日
在上面这些日期中,6月7日 和 12月2日 的日期值 N 是唯一的,在其它的月份中都没有另一个 7日 和 2日,如果小强所知道的N值是 7 或者 2 其中的一个,那么小强就在上面的10个生日中得知了老师的确切生日。但小明在看了自己的 M 值之后,肯定的说“ 小强肯定也不知道”,是因为小明的月份值M,绝对不是6月或者12月(比如说,如小明的 M 是6月,小强的 N 有50%的可能是7号;同理M是12月时,小强的 N 也有33%的可能是2号,那还如何说“ 小强肯定也不知道”呢?)可见小明的月份值M是 3月 或者 9月。老师的生日的范围缩小到以下:
3月4日 3月5日 3月8日
9月1日 9月5日

2.『小强说:本来我也不知道,但是现在我知道了』
小强也无法光凭手中的日期值N,推知月份M 是多少,但听了小明说的话后,他经过推理,也明白了月份M 是 3月 或者 9月,并且凭手上的 N值 确定了 M 是3 还是 9,最终确定了老师的具体生日。那么, N 到底是多少呢?
在现在已知可能的生日中
3月4日 3月5日 3月8日
9月1日 9月5日
N值如果是5,那小强就不可能从3月5日和9月5日中,判断出具体的日期,但小强现在判断出来了,也就是说:日期N值 为1、4、8其中的一个,而决不是 5。老师的生日的范围缩小到以下:
3月4日 3月8日
9月1日
那么,日期N 究竟是1、4、8中的哪一个呢?小强自己是知道的,所以他说『现在我知道了』,小强已经知道了老师的具体生日。但说实话,到现在为止,我们这些旁观者还不知道 N 是多少,则还不能确定老师的生日。

3.『小明说:哦,那我也知道了 』
小明通过推理,也知道了老师的生日是以下的其中的一天:
3月4日 3月8日
9月1日
那是哪一天呢?
小明是不知道日期 N 是多少的 ,所以只能凭自己所知道的 月份 M 来推理。M 如果是3月,那小明不能确定老师的生日是 3月4日 还是 3月8日 。但小明却说『哦,那我也知道了』,答案呼之欲出,显然小明 知道的月份值 M 是 9月,对应的唯一 日期值N 是 1日,老师的生日就是9月1日。

解答完毕,请大家帮忙看一下,有什么漏洞,恳请指教。
本文于2005-09-21 16:59:20.861被 万战光芒 修改过。这是本帖的第1次修改。

——————————————————————–

正确答案应该是3月4日。
第一次想的时候我也很快的出6月4日的答案,但是重新看了一遍题之后,发现得出6月4日是有错误的。

下面是详细的推解过程。为了易懂,M月用(月)表示,N日用(日)表示。

原题 ——–
小明和小强都是张老师的学生,张老师的生日是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.小明说:如果我不知道的话,小强肯定也不知道
即是说,单纯知道小强(日),没有小明(月)的配合是不能知道的,说明小强(日)在给出的日期里面有重复,
如果小强(日)是7或2,那么他可以直接知道是哪个月,所以6月7日和12月2日这两个排除,其它日期才是
需要同时知道小明(月)后才能找出。

还有一个很重要的是,小明先发现7日和2日都不是。小明既然知道月份,又知道(日)是有重复的,可以自己先排除
6月7日和12月2日,排除后自己又还不知道(从最后一句可知道小明是最后知道的),说明6月4日也不是,如果是的话,
小明排除了6月7日就已经可以知道了。所以6月4日确实也不是,会得出6月4日的朋友应该是少考虑了这一条。

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

括号内为已排除的。

2.小强说:本来我也不知道,但是现在我知道了
即是说,小强(日)本来需要知道小明(月)的,但是经过小明在第一条的排除之后,小强(日)只根据(日)就
知道了是哪个月。

小强(日)本来还没有知道是哪个月份,但是去除了被排除的日期之后就可以确定月份了。说明在第一条被排除的
日期中,把和小强知道的(日)是同一个(日)的日期排除了。第一条已经排除的6月7日和12月2日因为(日)是唯一的
所以不符合,只有第三个被排除的日期:6月4日符合。这里只有3月4日和6月4日都是4日,所以小强就知道了日期是3月4日

。小明也是通过这个方法知道日期的。

3.小明说:哦,那我也知道了
这一条的主要作用其实是为了提示第一条中小明并未比小强先知道答案,用来排除在第一条的6月7日。

————————————————————
我的答案是:3月4日.
具体分析如下:
1)首先排除6月7日和12月2日.因为:如果小强拿到这两个数字中的一个,他就可以知道老师的生日,因为2和7是唯一出现的.其他日是出现两次的,从这段对话中我们看出他们是在过程中知道结果的,开始并不知道,所以可以推出小强手上的数字是重复的.
2)排除这几组数据后剩下的为:
3月4日 3月5日 3月8日
6月4日
9月1日 9月5日
12月1日 12月8日
这时候我们再看看对话:
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
小明的第一句话告诉了小强他手上不是6,所以这时候小强说他知道了,为什么他一下就知道了,因为当排除6月4日后,答案就是唯一的了,即:3月4日. 这时候小明就不明白了,为什么他一下能明白.答案只有一种可能,他的手上是4,因为当去掉6月4日只有,只有4是唯一确定的,其他的都是重复的.
3)所以我选择3月4日

一家之言,仅供参考,请大家多多指教!
—————————————————————-
MaxGO的看法,本来最初我也选得是6月四号,看过网友们很牛的分析,再仔细研究对话和出题者用意之后发现9月1号似乎更合理,直到最后看到上面那篇3月4号的推理,过程很简单也很符合对话环境似乎也是对的,难道有多种答案么,我仔细对比9月1号和3月4号两种答案后,最终选择了3月4号,理由如下:
36楼的分析得很全面(9月1号那篇),但是在看过96楼(上面3月4号的那篇)的之后
再回头看36楼的
发现最后剩下1、4、8
小强应改已经知道确切答案了
小明说我知道后 并不能根据有两个3月来说明说明是9.1号 因为号数都是单一的小强已经知道确切答案
所以根据96楼的推理 认为比较符合谈话模式 同时也能很快地得出答案
所以 我选3.4

原文地址:http://itbbs.pconline.com.cn/topic.jsp?tid=2208815&topicPage=&pageSize=20&pageNo=1
]]>

《微软月薪5万面试题。你选什么–转自太平洋》有4个想法

  1. 这道题有问题,小明说自己不知道的话小强就肯定不知道。小明怎么知道自己的知不知道跟小强知不知道有什么关系,他不知道小强手里拿的是什么,怎么能说自己不知道小强就不知道呢?如果小强拿的是2或7,那小强就知道是哪一天。第一句话是没用的。
    从小强的话中可以看出6月7日和12月2日是不可能的,因为他本来是不知道的。
    那现在他为什么就知道了呢?明白
    从小明的最后一句话可以看出是6月4日
    因为小明知道月份,只能是6月小明才有可能知道
    所以答案是6月4日
    但这个题有问题

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据