微軟的一道經典邏輯推理題:小明和小強都是張老師的學生,張老師的生日是M月N日

轉自:http://blog.csdn.net/archimedes_zht/article/details/2784958


題目是這樣的:

小明和小強都是張老師的學生,張老師的生日是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日

小明說:如果我不知道的話,小強肯定也不知道

小強說:本來我也不知道,但是現在我知道了

小明說:哦,那我也知道了

請根據以上對話推斷出張老師的生日是哪一天?

 

 

此題剛開始感覺無從下手,不知道該如何是好。但是這類題目,一般都是看你能不能利用其中的規律,或者打破常規的奇思妙想。什麼情況下,一個人能根據他知道一個數字推出別人的生日呢?在這一題中,小明和小強知道的信息只有:生日可能的10個值,老師告訴他們的一個數字(月或者日)還有他們兩個之間的對話。

 

首先是小明先說話,他說他不知道。他知道的可能性也確實很小,因爲無論老師高訴他是哪個月,都有2種或者3種可能性讓他選擇,除非他還知道其他的信息,不然他肯定不知道。不過他不僅說他不知道,而且還說“如果他不知道的話,小強肯定也不知道”。那麼小強什麼情況下肯定不知道呢?那就是和小明一樣,老師告訴他的那個日對應至少2個月份,除非他還知道其他信息,那他肯定不能確定最終生日的。但是仔細觀察後,我們可以發現:如果老師告訴小強,是7或者2的話,那麼他就可以知道老師的生日了。因爲7和2對應的月是唯一的。所以從第一句話可以知道:N不會爲7和2,M也不會爲6和12(後半句要想清楚了)。

 

那現在的可能值就是:

3月4日 3月5日 3月8日

9月1日 9月5日

現在小強說他知道了。那N就不可能爲5了,因爲M就有3和9兩種可能。

 

那現在的可能值就是:

3月4日 3月8日

9月1日

現在小明也說他也知道了。那M就肯定爲9了。因爲M爲3的爲話,N就有4和8兩種可能了。

 

所以老師的生日是:9月1日。

 

解題總結:根據當前條件找出當前最能肯定(一定正確)的結論,一步一步的推下去,不斷排除,最終確定。

 

感慨:微軟的面試題果然就是不一樣啊。想通了之後,覺得此題太妙了。呵呵。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章