謝麗爾的生日

雪莉的生日的報導，出題者也相當意外。在題目中，名叫雪莉一些有關她生日的資訊，讀者要根據這些資訊及她朋友的回覆判斷雪莉的生日。起源.此問題是由新加坡《獅城有約》的電視主持人江堅文貼上Facebook，之後有數千個回覆，包括一些有趣的回覆，例如認為雪莉根本不希望艾伯特和柏納知道她的生日，這一題引發了江堅文和他妻子的爭論，江堅文誤以為這是小學數學考試的一部份，且是針對5至6歲的兒童。江堅文後來更正這是2015新加坡及亞洲學校數學奧林匹克的題目，是針對14歲的學生設計。比賽在2015年4月8日舉行，有二萬八千名來自新加坡、泰國、越南、中國及英國的學生參加。SASMO的主辦人員表示，此問題是針對參賽者中的前40%，目的是為了「篩選出更好的學生」。SASMO的執行董事告訴BBC：「這樣的邏輯及分析思考可以用在生活上及工作中。」。問題.此問題是在25個問題中的第24個，問題如下：艾伯特和柏納剛認識雪莉，想要知道雪莉的生日，雪莉列出了十個可能的日期：5月15日、5月16日、5月19日、6月17日6月18日、7月14日、7月16日、8月14日8月15日、8月17日接著雪莉分別告訴艾伯特及柏納她生日的月及日，以下是艾伯特和柏納的回應。請問謝麗爾的生日是那一天？答案和解法.謝麗爾的生日是7月16日。其解法是推理的方式，刪去不可能的日期，這也是Alex Bellos在英國的《衛報》解出此題的方式：可能的生日用表格方式條列如下，將同月的放在同一列，同日的放在同一欄：艾伯特知道的是月份，而每一個月都有一個以上的可能日期，不論艾伯特知道的月份是哪一個月，都不可能會知道雪莉的生日，第一句話的前半沒有提供有關生日的資訊。柏納若要知道明確的生日日期，唯一的可能是生日日期的日在十個可能日期中只出現過一次，十個可能日期中，只有18日和19日各出現過一次，例如若柏納知道生日的日是18或是19，就可以立刻推理得到生日是6月18日或5月19日。但艾伯特說他知道柏納也不知道生日是哪一天，因此可以推測他知道的月份是5月或6月以外的月份，因為若是5月或6月，柏納有可能知道生日是哪一天。根據第一句話柏納可以推測月份是7月或8月，而他已經知道生日是哪一天，表示他知道的日是在7月或8月中只出現過一次的日，因此可以排除7月及8月可能生日中都有出現的14日，柏納知道的日可能是15日、16日或17日。目前還有可能的生日是7月16日、8月15日及8月17日，而艾伯特在聽完第二句話就可以知道生日是哪一天，表示他知道的月份在7月16日、8月15日及8月17日中只出現一次。因此他知道的月份是7月，生日是7月16日。答案是7月16日。對題意的另一種理解.除了上述答案外，有些人認為8月17日也是一個可能的答案。但新加坡及亞洲學校數學奧林匹克認為此答案無效。存在爭議之處.造成對題意存在不同理解的原因是題目的表述不夠準確，至少在避免歧義方面做得不夠完善。“但我知道柏納也不知道”這一句的英文原文“but I know that Bernard doesn't know too”就存在此問題。所以這是一個英文語言表達與理解的問題。一些人覺得此處的“知道柏納也不知道”是指“能很有把握地猜測柏納也不知道”，而另一些人則認為應該是指“已經由某種方式準確地知曉柏納確實不知道的事實”。其實聯絡上下文就可以發現，出題人在文中此處所指的應該是前一種意思，即艾伯特只是在進行“猜測”，而非已知曉部分事實。一般來說，數理內容的敘述要儘量措辭準確，避免引起可能的歧義，但以此題來說，艾伯特是否事先知道有關柏納所知的部分事實，會干擾他自己第一步的思路，從而將這個推理過程最終引向完全不同的方向，如下所示。另一種理解的推理過程.艾伯特：我不知道謝麗爾的生日是哪一天，但我知道柏納也不知道。艾伯特知道的是月份，而每一個月都有一個以上的可能日期，不論艾伯特知道的月份是哪一個月，都不可能會知道謝麗爾的生日，第一句話的前半沒有提供有關生日的資訊。柏納若要知道明確的生日日期，唯一的可能是生日日期的日在十個可能日期中只出現過一次，十個可能日期中，只有18日和19日各出現過一次，例如若柏納知道生日的日是18或是19，就可以立刻推理得到生日是6月18日或5月19日。因此，首先排除6月18日和5月19日這兩天。注意到，這時6月只剩下17日這一天。如果艾伯特知道的月份是6月，那麼這時他已經知道了謝麗爾的生日。但艾伯特並不知道，所以又排除6月17日這一天。柏納：一開始我不知道謝麗爾的生日，但現在我知道了。根據第一句，剩餘的日期中，14日、15日和16日分別出現在兩個月中，只有17日只出現在8月。現在柏納知道了謝麗爾的生日，這表明柏納知道的日期是17日，所以謝麗爾的生日是8月17日。艾伯特：那我也知道謝麗爾的生日了。艾伯特也知道只有17日是唯一的，因此在聽到第二句話之後，艾伯特也知道了謝麗爾的生日是8月17日。答案是8月17日。另一種理解的推理過程.如果艾伯特在第1次講話前事先被人明確告知柏納根據自己所知的日期推不出生日，則第1步可排除18日與19日。但是此情形下柏納得知的日期是仍有可能屬於5月或6月的，只不過不可能是在18日或19日。而在排除18日與19日後，在剩下的選項中，僅有6月17日可由月份數唯一確定。但此時艾伯特作出了“我還不知道”的判斷。說明生日也不可能在6月17日。足夠聰明的柏納也是這麼想的。而且在聽到艾伯特還推不出生日時，表示自己已經推出了答案。說明在上一步所剩的各個選項中，已經能由日期唯一地確定出生日，但尚不能僅月份確定。也就是說，在剩下來的選項中，生日的月份數一定出現了不只一次，但日期數一定只出現了一次。唯一符合這條件的選項只有8月17日。2種情形的解法步驟比較.對比7月16日和8月17日兩種答案的推理過程，可以知道：由此引申出的矛盾.透過以上推理，可以總結出：如果艾伯特是“猜測”到柏納不知道謝麗爾的生日，那麼不論日期為15日、16日還是17日，柏納在聽到第一句話後都能“猜測”出謝麗爾的生日；而如果艾伯特“已經由某種方式準確地知曉柏納確實不知道的事實”，那麼只有當日期為17日時，柏納才能在聽到第一句話之後知道謝麗爾的生日。於是有了這樣一種可能，先假定以下三點：然後，柏納聽到第一句話之後“猜測”出謝麗爾的生日是8月15日，因此說了第二句話。艾伯特按自己的理解說了第三句話，但其實他以為謝麗爾的生日是8月17日。這便是矛盾之處。實際上，艾伯特在知道8月的情況下，即使不存在“某種方式”，他也可以知道柏納也不知道。然而，由於“某種方式”的存在，使得艾伯特忽略了這一點。另一方面，柏納或許沒有想到“某種方式”的存在，因而與艾伯特產生誤會。最後，柏納甚至可能對艾伯特說第四句話：“你怎麼知道是15日還是17日的？”推廣.本題可抽象和推廣為一類在層層遞進的限制條件下，從高維向量空間的有限點集中篩選特定點的問題。為保證問題可解且有唯一的解，作為猜測範圍的有限點集必須是精心選取的。這裡以4維情況為例作一個說明。X先生從4維歐幾里德空間formula_1中精心挑選出一個點集formula_2作為參考範圍，再由讀者來推斷formula_4的座標。上例所示的4維點集篩選問題可自然地推廣至n維。當n=2時，此類問題可用列出數表的方法所屬的組別確定是篩選行向量還是列向量，並根據說話人的判斷情況選擇是劃去選出的子向量組還是劃去未選中的向量組。然後根據說話人的發言順序逐步迴圈篩選下去。因為對話數量是有限的，所以只要題目所設條件資訊充分，在有限步驟內一定可以完成篩選迴圈。求解答案的演算法實際上也是判斷可解性的演算法，如果到最後一個條件用完後還算不出答案，那麼原題一定無解。除參考集合可以推廣至高維向量空間外，求解的物件也可由一個點推廣為多個點。即求解formula_2的某個元素變為求解formula_2的某個子集。當求解的點數增多時，與直接靠腦力思考的方法相比，代數方法仍具有判斷速度快和可程式化處理的優勢。