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

来源:http://www.cnblogs.com/resolvent/archive/2016/09/30/5924806.html
-Advertisement-
Play Games

(-1)寫在前面 都快去北京了,硬生生的安排一場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日這一種答案。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • VSCode,安裝插件:C# for Visual Studio Code (powered by OmniSharp),關於C#代碼的插件提示後,提示安裝DotNetCore.1.0.1 在安裝DotNetCore.1.0.1-VS2015Tools.Preview2.0.2出現0x80072f8... ...
  • 這個屬性我們平時可能並不怎麼用.先來看下MSDN上的解釋: 解釋的非常專業,然而我並沒有看懂. 說說我的理解吧:把這個屬性設置為false,看起來沒有變化,但操作上已經把他完全忽視了,不觸發事件,可以直接點到它下麵的東西. 這個屬性能方便的解決工作中常見的麻煩,比如下麵這個例子: 註意上面那部分.效 ...
  • 轉自:http://blog.csdn.net/samsone/article/details/7556781 1、格式化貨幣(跟系統的環境有關,中文系統預設格式化人民幣,英文系統格式化美元) string.Format("{0:C}",0.2) 結果為:¥0.20 (英文操作系統結果:$0.20) ...
  • 前段時間,我負責一款APP的介面開發,其中有一個新增的操作,邏輯比較複雜,涉及到9個數據表的數據改動,而且表又跨庫,這9個表呢,個別在別處還有單表操作,所以為了復用之前的數據層,筆者直接想到了使用分散式事務TransactionScope,在業務層直接調用多個DAO類的方法。 再說下這個新增操作吧, ...
  • 之前一直認為因為List內部實現是數組,ToArray的實現只是將數組返回出去而已。 今天測了一下發現並不是那樣 1萬數量大小的List,調用1萬次ToArray的時間消耗是417ms左右。 報著疑惑看了下源碼,沒想到它是把內部數組複製了一份再返回 看來對於重覆性操作,可以考慮直接緩存成全局變數,或 ...
  • 什麼是基元類型? 什麼是基元類型? 初學者可能很少聽說過這個名詞,但是平時用得最多的肯定是基元類型。先看下麵兩行代碼: 上面兩行代碼都表示聲明一個int類型的變數,但在平時寫代碼的時候我們一般用的是第二種方式。第二種方式不僅簡潔、易讀,而且生成的IL代碼和第一種完全一致。像這種編譯器直接支持的數據類 ...
  • 1. 類的訪問修飾符 2. 成員修飾符 ...
  • 1、頁面上按鈕是伺服器控制項,現在刷新頁面要防止按鈕事件重覆執行 原網址:http://blog.csdn.net/high_mount/article/details/51066056 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...