1. 智商測試開始:小明和小強都是張老師的學生,張老師的生日是某月某日,2人都不知道張老師的生日。
2.
3. 生日是下列10組中一天:
4.
5. 3月4日3月5日3月8日6月4日6月7日9月1日9月5日12月1日12月2日12月8日
6.
7. 張老師把月份告訴了小明,把日子告訴了小強,張老師問他們知道他的生日是那一天嗎?
8.
9. 小明說:如果我不知道的話,小強肯定也不知道。
10.
11. 小強說:本來我也不知道,但是現在我知道了。
12.
13. 小明說:哦,那我也知道了。
14.
15. 請根據以上對話推斷出張老師生日是哪一天?
16.
17.
18.
19.
20.
21.
22.
23.
24.
25. 1.小明說:「如果我不知道的話,小強肯定也不知道」。
26. 這句話的潛台詞實際上是:「我應該猜對了,如果我猜錯的話,小強肯定不知道」。但小明還是不確定自己究竟猜對沒,需要小強來印證。m取什麼值能讓小明這麼說呢?顯然6和12不可取,如果m為6或12,n就有可能是2或7——小強憑2或7乙個數字就能得知張老師的生日。則m只可能是3或9,而n只能在1、4、5、8中取值。
27. 如果m是3,n可以取三種值,結果成了「如果小明不知道,小強有可能知道(2-4,3-8),也有可能不知道(3-5)。」,在這種情況下,小明說「如果我不知道的話,小強肯定也不知道」是不符合事實的,小明不足以如此自信的這樣說。
28. 如果m是9,則小明就知道n只能是1或者5。此時,小明的猜測正是n=1,而n究竟是不是1,小明也不確信,如果n不是1而是5,則就出現了小明說的「如果我不知道的話,小強肯定也不知道」。至此,實際上小明已經知道了,結果只有兩種情況,只等小強來確認n是不是5。
29.
30. 2.小強說:「本來我也不知道,但是現在我知道了」。
31. 小強說「本來我也不知道」,驗證了n確實不是2或者7;同時,小強也知道了「m不是6或12,m只剩下3和9可取」。若n是5,則小強應該說「本來我也不知道,現在我還是不知道」。根據第一節的推斷,n=1,所以小強才能說「本來我也不知道,但是現在我知道了」。
32.
33. 3.小明說:「那我也知道了」
34. 小明就等著小強的一句話了,不管小強怎麼回答,小明都會知道正確答案。如果小強說「我還是不知道」,那麼小明依然可以知道「只有n=5會讓小強茫然」,因此答案是9月5日;如果小強說「我知道了」,那麼就必然是9月1日。
35.
36. 其實,自始至終,小明都是明白的,他只需要小強說句華驗證他的猜測,對小明而言,是個非a即b的選擇題。因此,按照題目本身的故事發展線索,小明的第三句話是可以不用的,很多人推導的時候卻用上了這個條件——那樣就有點像做數學題了
一道月薪3萬的Java面試題目
題目內容 小明和小強都是張老師的學生,張老師的生日是某月某日,2人都不知道張老師的生日。生日是下列10組中一天 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 張老師把月份告訴了小明,把日子告訴了小強,張老師問他們知道他的生日是那一天嗎?小明...
Java多型一道面試題
下面 輸出是什麼 class a public string run a obj class b extends a public string run a obj class c extends b class d extends b public class test 關於上面所有注釋答案的解釋...
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...