程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java抽象-老師的生日-邏輯思維-有趣的面試題-遁地龍卷風,java抽象

java抽象-老師的生日-邏輯思維-有趣的面試題-遁地龍卷風,java抽象

編輯:JAVA綜合教程

java抽象-老師的生日-邏輯思維-有趣的面試題-遁地龍卷風,java抽象


(-1)寫在前面

都快去北京了,硬生生的安排一場java考試,對於那些特別細節的東西我忘了吧也不覺得有什麼不好,以前都記得,也都見過,只不過平時不常用連接斷了,但是你死記硬背是沒用的,一段時間後還是會忘,唯一的途徑就是多做東西,理論聯系實際,相反這道題我感覺很有意思,也在網上看到了很多解釋,覺得都有所不足,下面是我給出的答案。

(0)詳細解釋

設一個老師的生日為M月N日.把M告訴學生甲(即學生甲知道老師出生的月份),把N告訴學生乙(即學生乙知道老師出生的日).現有如下日期是公開的:3月4日,3月8日,3月10日,6月4日,6月7日,9月1日,9月10日,12月1日,12月2日,12月8日

其中有一個是老師的生日.

 

現有學生甲與學生乙的對話:

學生甲:如果我不知道的話,你一定不知道.

學生乙:本來我不知道的,現在我知道了.

學生甲:那我也知道了.

現在問:老師的生日是哪一天?

甲的第一句話

首先我們看數據有哪些特性,數據是由月份和日期組成的,甲是知道月份的,數據中的月份有3,6,9,12,甲不能通過自己知道的月份信息判斷出老師的生日,甲知道乙無法通過日期推測出正確的月份。

甲知道的是3 月 日期有4,8,10

甲知道的是6月 日期有4,7

甲知道的是9 月 日期有1,10

甲知道的是12月  日期有2,8

我們發現7日、2日是唯一的,也就說明,如果甲知道的是六月,那麼乙知道的是7日,就推測出生日,甲就不會說你一定不知道,所以甲知道的不是6月,同理,甲知道的也不是12月。

乙的第一句話

根據甲的第一句話,剩余數據如下:

甲知道的是3 月 日期有4,8,10

甲知道的是9 月 日期有1,10

乙的前半句話有歧義,第一種情況,乙認為甲能夠通過月份推出生日,那麼乙的日期就是2或7,這與甲第一句話得出的結論不符。那麼就是第二種情況,乙此時通過甲的話推斷出上述結論,根據自己的日期判斷出了甲的月份,顯然10是不對的,如果是10,甲的月份就不唯一。那麼數據如下:

甲知道的是3 月 日期有4,8

甲知道的是9 月 日期有1

這樣看來似乎3月4日,3月8日,9月1日都是可以的,因為乙知道1,4,8中的任意一個對應的月份都是唯一的

甲的第二句話

這句話把答案推向了9月1日,因為對於甲來講,如果他知道的是3月,對於老師的生日就3月4日和3月8日兩種選擇,而如果他知道的是9月,就只有9月1日這一種答案。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved