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

來源:互聯網
上載者:User

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日這一種答案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.