一道有趣的邏輯推理題?

這是一個朋友給我的題目,我一開始想很久沒想出來,就百度了一下,看到一個人給出的答案,覺得有幾分道理,後來細想一下覺得那個答案有錯誤。我想問一下是我理解不到位還是另有答案亦或是題目有錯誤。

原題目:

當Albert(A)和Bernard(B)認識了一個叫Cheryl (C)的新朋友之後。 他們想知道她的生日。 C給了他們10個可能的日期

5月15, 5月16,5月19

6月17, 6月18

7月14, 7月16

8月14, 8月15, 8月17

然後C單獨告訴了A是哪一月,又單獨告訴了B是哪一日。

隨後:

A說: 我不知道C的生日是哪個。 但是我可以確信B也肯定不知道。

B說: 我剛開始也不知道C的生日是哪個。 但是我現在知道了。

A說: 那麼我現在也知道C的生日是哪個了。。

根據這三句話的推理。。。 你知道Cheryl的生日是哪一天了么???

百度查到的答案:

10個日子,只有18和19出現過一次,如果C的生日是18或19日,那知道日子的B就能猜到月份,一定知道C的生日是幾月幾日。A肯定B不知道C的生日,所以推斷生日不會在18或19日,然後會判斷不會在出現18或19的5月和6月。所以她的生日一定是7月或8月。根據B的表述,在7月和8月剩下的5個日子中,只有14出現過兩次。如果C告訴B她的生日在14日,那B就沒有可能憑A的一句話,猜到生日。所以14日被排除。現在的可能性只剩下7月16、8月15和8月17。在B說話後,A也知道了C的生日,這表明生日月份不可能在8月。因為8月有兩個可能的日子,7月卻只有一個可能性是7月16日,假設加排除,很簡單。

我看了一下上面的答案,存在的錯誤一:「A說: 我不知道C的生日是哪個。 但是我可以確信B也肯定不知道。」這句話只能排除18日和19日,並不能排除5月和6月。假設我知道生日是5月同樣可以說這句話。

假設錯誤一不存在,繼續推理下去則出現錯誤二:排除到剩下7月16日、8月15日和8月17日時,B知道生日是因為知道日子,而A只知道月份,A不可能因為B知道生日A就知道了除非B告訴A。假設日子是15日,則B知道生日是8月15日,A只知道月份,不能因為7月只剩一個,8月只剩兩個就排除八月,所以說此處答案有錯誤,問題提得也有問題。


仔細看了一下題主的疑問,我們來推一下。

首先複製黏貼一下原題目:

當Albert(A)和Bernard(B)認識了一個叫Cheryl (C)的新朋友之後。 他們想知道她的生日。 C給了他們10個可能的日期

5月15, 5月16,5月19

6月17, 6月18

7月14, 7月16

8月14, 8月15, 8月17

然後C單獨告訴了A是哪一月,又單獨告訴了B是哪一日。

隨後:

A說: 我不知道C的生日是哪個。 但是我可以確信B也肯定不知道。

B說: 我剛開始也不知道C的生日是哪個。 但是我現在知道了。

A說: 那麼我現在也知道C的生日是哪個了。。

根據這三句話的推理。。。 你知道Cheryl的生日是哪一天了么???

==================

解題思路:

1.1

A說: 我不知道C的生日是哪個。

即A所知月份有重複的日期。

得:無法排除任何一個答案,因為每個月都有至少兩個或以上。

1.2

A還說:但是我可以確信B也肯定不知道

10個日子中,有2個日子:5月19日 和 6月18日 是在日期上完全沒有重複的日子。

B可能知道的條件:A所知道的月份有為5和6月,因為他獲得的日期可能是19或者18

得:A確信B肯定不知道,即排除B可能知道的所有條件——只可能是7月和8月

1.3

B說: 我剛開始也不知道C的生日是哪個。

B剛開始不知道生日是哪個,即在A說話之前,他所知道的線索——日期出現兩次或以上

排除 19日和18日(與1.2所得結果重合)

1.4

B又說:但是我現在知道了。

在聽完A闡述完後,B獲得了新的線索,即1.2得出的只可能是7月和8月

此時他知道了結果,所以必須——

排除出現2次的14日,即7月14,8月14

這個時候的答案可能是 7月16,8月15,8月17。

1.5

A聽完B的闡述,恍然大悟:那麼我現在也知道C的生日是哪個了。

1.4後,A獲得信息,答案只可能是7月16,8月15,8月17

而在最後,他成功獲得答案,那麼我們也就必須排除可以讓他困惑的出現2次的8月,即8月15,8月17

獲得答案 7月16

====================================

獲得答案之後,讓我們來用A和B的思考角度檢驗一下。

設正確答案為7月16

A獲得信息:7月

B獲得信息:16日

1.1

A:我只知道是7月,但是不知道是14日還是16日啊

於是A說:我不知道C的生日是哪個。

1.3

B:我只知道是16日,但是不知道是5月16還是7月16日啊

於是B說: 我剛開始也不知道C的生日是哪個。

1.2

A:我得到7月這個線索,所以5月19,6月18這兩個有日期只出現一次的月份不是正確答案,這樣的話也就是說,B不可能單靠日期就知道正確的日子

於是A說:但是我可以確信B也肯定不知道。

1.4

B:既然A說我不可能知道,那麼就不是5月6月,我可以排除5月16了!答案就是7月16!

於是B又說:但是我現在知道了。

1.5

A:B明白我的意思了,5月6月是錯誤的。但是他單單是知道月份是7月8月就知道正確答案了嗎!7月和8月有共同的日期14日,如果B獲得的線索是14日,他沒道理會知道答案。因為我知道月份是7,排除7月14。

那麼!只有7月16才是答案了!

於是A說:那麼我現在也知道C的生日是哪個了。

===================

接下來解答一下答主的困惑

「存在的錯誤一:「A說: 我不知道C的生日是哪個。 但是我可以確信B也肯定不知道。」這句話只能排除18日和19日,並不能排除5月和6月。假設我知道生日是5月同樣可以說這句話。」

結論:如果A的月份是5,那麼他無法篤定地說B肯定不知道。

5月有三個可能,5月15,5月16,5月19

假設B知道的線索是15,16,那麼在B不知道月份的情況下他確實可能不會知道日期。

但是不可否定的是,一旦如果B拿到的線索是19日,B當即就可以得出答案,也就不存在A確信B肯定不知道答案了

「錯誤二:排除到剩下7月16日、8月15日和8月17日時,B知道生日是因為知道日子,而A只知道月份,A不可能因為B知道生日A就知道了除非B告訴A。假設日子是15日,則B知道生日是8月15日,A只知道月份,不能因為7月只剩一個,8月只剩兩個就排除八月,所以說此處答案有錯誤,問題提得也有問題。」

【A只知道月份,不能因為7月只剩一個,8月只剩兩個就排除八月。】

A的角度來說他都知道了月份,還需要排除嗎?他需要排除的是日期。

解題的角度來說:我們有A知道了答案這個條件,如果是8月,那麼A是不可能知道答案的(1.5),所以不可能是8月。

結論:題目沒有問題。你的假設有問題。

如果答案真的是8月15,那麼題目就會變了。因為8月15的話,B是可以確定正確日期了,但是A就不會知道了,因為A會有2個選擇,8月15和8月17,也就不存在結尾處的A說: 那麼我現在也知道C的生日是哪個了。。

現在的邏輯就好比,我出了一道數學題讓你計算,你在最後一步的時候假設答案是X,但是實際答案為Y。你用自己設的X的答案質疑題目出錯了。問題就是,你在假設錯誤答案為正確答案的時候,倒推過去是永遠無法符合題目的提示。

為什麼是7月16?恰恰是因為A和B都獲得了答案這兩個條件,缺少任何一個條件,答案都不成立。


7月16號

1.A確信B不知道

若B知道的日子是18或19,則B就知道生日,那A為何會確信B不知道呢?只有一種可能,那就是A知道月份不是5月和6月,那B知道的日子就不可能是18或19,也就確信B不知道了。

2.B聽了A的話知道了

剩下的日子裡兩個月都有14號,因此排除714和814,剩下716、815和817

3.A聽了B的話也知道了

如果月份是8月,A不可能知道,因此的結論716


很簡單阿其實這個題目,百度上有個花色的題目是一樣的意思,基本上一模一樣。

以下是解答:

「A說: 我不知道C的生日是哪個。 但是我可以確信B也肯定不知道。」

——A知道月份,不知道答案,很正常,但是他確信B也不知道,說明答案所以在月份里,所有日子都有其他月份的可能性,所以B就算知道哪一天,也不能確定哪一個月。也就是推導出答案在7月14、16,和8月14、15、17。所以A知道的月份是7月或者8月。

B說: 我剛開始也不知道C的生日是哪個。 但是我現在知道了。

——A說完那句話,給出了A的信息是7月或8月,那B加上自己的日期,正好知道了答案。說明答案是兩個月份中不重複的唯一項,也就是7月16、8月15、8月17

A說: 那麼我現在也知道C的生日是哪個了。。

——對於A來說,他只知道月份,就能確定是哪個,說明那個月份剩下的選項只有1個,那就是7月,如果是8月是確定不了的,所以答案是7月16日


錯誤一不成立啊 如果A得到的是5月或6月 有5.19和6.18 他不能確定B也一定不知道C的生日

再說錯誤二 A因為B知道了也知道了 只能是7.16 就是因為7月只有一個答案 如果是8月的一天 那A也就不可能知道了


咳,首先,立場明確地反對樓主!此處應有掌聲~

樓主糾結的地方在於不能通過日期排除5月和6月,但事實上,這種想法是不對的。嗯,完全不對!雖然(我一定要強調!但明顯語法有問題,但是也顧不上了!哈哈哈哈)其它答案的確實跳躍性太強了!以至於很難一下子Catch到關鍵點……

-------------在講道理之前,不妨公布答案先-------------

假設:C君生日是6月17日(因為18日可以排除,沒有疑問,那6月中日期是否也有可能是C君生日等價於C君生日可能是6月17日)

問題:在該假設下,A和B的對話是否還能夠滿足題設中的邏輯呢?

結論:不可以

推論:6月無正確的生日日期

推論等價於樓主的」錯誤一「是錯誤的,因此基於錯誤的假設的命題的推論不可靠。

-------------測試的詳細過程,不強求你看完-------------

題干中的日期公布我們可以用下表表示:

因此,當我們假設C君生日是6月17日時:

A君認為C君的生日可能是

B君認為C君的生日有可能是

首先驗證第一句:「A說: 我不知道C的生日是哪個。 但是我可以確信B也肯定不知道」。此時,A根據已經知道的「我的生日是6月份」只能猜測是6月17或6月18,B根據已經知道的「我的生日是17號」只能猜測是6月17或8月17,滿足」A確信B肯定不知道是哪天「的說法;

再來驗證第二句:」B說: 我剛開始也不知道C的生日是哪個。 但是我現在知道了「。此時,B根據A的說法知道一定不會是6月18號和5月19號,因為這個日子只對應了一個月份,因此生日將是6月17日;

不過,貌似哪裡不對?!A和B沒有開啟上帝模式!他們的信息不對稱啊……

事實上:

A君認為B君猜測的範圍應該是:

因此,當A說出」B肯定不知道「的時候,A已經排除了C君生日是6月18號的可能?NO!肯定不會,如果是這樣的話A君已經知道了就不會說那句」我不知道C的生日是哪個「這樣的話了!

所以,這樣來看的話,6月17日確實已經不可能是潛在的正確答案了。

至此,整個6月份的可能的日期都已經被排除在」可能的正確答案「外了!也就意味著,題主所謂的」錯誤一「是錯誤的。

採用類似的方法,先排除5月19日,之後通過對5月15日和5月16日做類似的分析可以證明5月份也是不可能的月份,感興趣的朋友們可以自己測試一下。

-------------繼續拆穿,記住上一步的結論先-------------

上一步,我們排除了5、6月份的日期之後,這個可能正確的時間表就變成了:

並且,聰明的A君和B君也能猜到事情是這個樣子的了。那麼,我們繼續做排除法。

哈哈哈哈,你們又上當了!事情當然不是這個樣子的!這樣顯然是看不出來結論的!再次強調:AB君沒有上帝視角,他們是通過手上拿著的信息去推測的!而我們要推測的是他們掌握了什麼信息!

事實上,我們還需要繼續做排除法!繼續試錯啊親!你們要知道,AB君是拿著一部分答案去推理的啊!!

好了,營養不忽悠,現在說正事。A君拿到的消息會是8月份么?答案是不會

照例假設:A君拿到的月份數據是8月,那麼:

A發言的時候他認為可能的日期會是

那麼他認為B可能猜測的範圍將是

……中的一行!(注意,不是全部!)……

那麼,當A君非常肯定地說出「B肯定不知道」的時候,B已經可以根據第一部分的推測方法將5月份和6月份的日期排除了!所以:

首先,當A君手裡拿到8月份的時候,B君手裡是不可能拿著14日的。那麼,自然就有

(1)當B君手裡拿到的是15日的時候,在B君看來那不就是8月15了么?

(2)當B君手裡拿到的是16日的時候,在B君看來那不就是7月16了么?(此時該選項不在「正確的生日是8月份的假設範圍內,暫不討論。你懂的

(3)當B君手裡拿到的是15日的時候,在B君看來那不就是8月17了么?

好吧,為方便起見,我們把上面的命題命名為(8-1)、(8-2)、(8-3)。

那麼,問題來了:聰明的B君已經知道了答案是(8-1)或者(8-3),但這個時候A知道么?

答案是:不知道 。

為什麼?因為這個時候A君看到的潛在答案是這個樣子的啊:

這個時候他已經沒有線索再去確認8月15和8月17哪個是對的啊!

好吧,最後一次,正確答案揭曉:那如果A手裡拿著的是7月份呢?

這個時候他只需要二選一:

A認為B的猜測範圍應該是:

……中的一行!……

所以,這樣看來B君手裡拿到的信息只會是「我的生日是14日或16日」這兩種。

當B君手裡的信息是14日時,B君眼裡的可能答案是:

喂,你站住,我保證不打死你:我怎麼可能知道正確答案啊哎呦喂!!!~~~

所以到這裡題設就進行不下去了;

那B君手裡只能是16日了啊,此時B君眼裡的答案是:

這個時候A君一發話B君就笑了啊:你一說我就可以把5月16日排除了啊!(這裡不懂請看上一步對錯誤一的闡述)這樣就只剩下7月16日了啊!我一定是個天才!~~哈哈哈哈哈哈

然後,A君也笑了,你知道了那我也就知道了,哈哈哈哈~~我這個天才比你還要聰明一點啊,我比你想更多啊。哈哈哈哈哈哈~~~~


如果想要看到更多的推理題,可以關注「思維公社」公眾號。


百度答案沒有問題,其他答主也基本發出我想說的內容,來晚了哈~

我們正在舉辦推理大賽,有很多這樣的燒腦智力題,有餘力的不妨參加一下吧

http://tieba.baidu.com/p/4958429785


應該是這樣,一開始就應該直接排除18號19號。如果B的日期是18或者19,早就已經知道了,都不用去推理了。所以一開始就應該先直接排除18號和19號。

這時,排除了兩天的A,還不能確定是哪一天。而6月只有單獨一天,A不確定,明顯不是6月。排除。

B一開始也是排除18和19的。通過A,排除了6月,與此同時,知道了生日。B掌握著日期,如果是14號15號16號,還有兩個月要推理,17號只有8月。如果B還不知道,就不是17號;但是B宣布知道了生日,說明日期是17號,也就是8月17號。

A掌握著8月,要推理14,15,17其中一天,B宣布了他知道了生日。A通過B知道了17號。

8月17。


百度答案沒有問題。


A說B肯定不知道就是說,B知道正確時間的概率為0。按題主所說如果生日是5月,C有X的概率告訴B日期是18(X=1/6),那麼B就能知道正確的生日。所以題主你的第一個說法就不對。


七月十六

這個題沒有漏洞,我推了一下。

首先A的第一句話,可以直接排除5月和6月,因為A確信B不知道,說明A得到的月份裡面不包含19和18。

同理,當B聽到A的話時,也得出了以上結論,確信了C的生日在7月或者8月,其中14日是重複的,所以B如果能確信的話,那麼C的生日只可能是剩下的7月16,8月15,或者8月17

同理,A也得出了以上答案,其中7月份只有一個選擇,而8月份有兩個選擇。因為A說能確定C的生日了,說明A得到的月份只能是7月。

最後得出結論,C的生日是7月16日。


對於題主說得存在錯誤1,因為a確信b不知道,說明a手上拿到的月份所對應的那幾個日期的數字都不是獨數,所以a才確信b也不知道。。。因為7或8月的日期數都不是獨數,所以a拿到的是7月或8月a才說出這樣的話。因此排除5,6月。。。

題主說得第二個錯誤,b知道是因為b知道日期,而之後a知道也是因為知道月份。。在剩下的3個日期里,如果像題主假設的b知道的日期15號的話,那a是不會說那我也知道了。正是因為a在b之後確認生日日期就說明他所知道的月份是7月。。。如果是a被告知的是8月的話a可能會說,究竟是哪天生日啊魯?


7月16

第一句:「A知道的這個【月份】中,所有的【日期】都在別的月份中出現」,排除後剩下7、8月;

第二句:「B知道的這個【日期】,在7、8月中沒有重複」,排除14號;

第三句:「A知道的這個【月份】,排除完14號只剩一個【日期】」,得到答案


推薦閱讀:

【認真想】少點意見,多點論證
學習邏輯給你的生活帶來什麼改變?
哲學 邏輯與方法?
為什麼人總是告誡自己不要隨意下結論,可這本身不就是一個結論嗎?

TAG:數學 | 邏輯 | 邏輯思維 | 推理 | 思維方法 |