第663章 康威兩個巫師的謎語
20世紀60年代,康威設計了一個極其棘手的謎題,直到最近才引發了很多討論,2013年,麻省理工學院的塔尼亞·霍瓦諾娃發表了一篇論文。以下是那篇論文中出現的謎題:
昨天晚上,我在一輛公共汽車上坐在兩個巫師後面,聽到了下面的話:
A:“我有正整數個數的孩子,他們的年齡是正整數,和是這輛車的車號,乘積是我自己的年齡。”
B:“如果您把您的年齡和孩子的數目告訴我,也許我就能算出他們每個人的年齡了。”
A:“不。”
B:“啊哈!我終於知道你多大了!”
公交車的車號是多少?
當然,你必須假定巫師B知道公交車的車號。還要注意,巫師們可以非常年輕,也可以非常年老,巫師A很可能是兩萬歲的老人。
下面是解題過程,我只能在程序的幫助下完全理解和驗證。我不能重現所有的計算,但你可以相信我的話。
讓我們把巫師A的年齡記為A,把公交車車牌記為b,把巫師A的孩子數記為c。例如,假設車號為b=5。以下是孩子的數量、年齡分佈和巫師A的年齡:
c=5,年齡分別為1,1,1,1,1;因此a=1;
c=4,年齡分別為1,1,1,2;因此a=2;
c=3,年齡分別為1,1,3;因此a=3;
c=3,年齡分別為1,2,2;因此a=4;
c=2,年齡分別為1,4;因此a=4;
c=2,年齡分別為2,3;因此a=6;
c=1,年齡分別為5;因此a=5;
在每種情況下,知道巫師A的年齡和孩子的數量表明後者可能的年齡。因為巫師A回答“不”,而巫師B知道車號,這意味着b不等於5。
類似地,你可以通過逐個驗算可能的車號來解決這個問題,找出那些可以知道巫師的年齡和他的孩子的數量,但不能知道每個孩子的年齡的車號(這個車號的屬性標記為P)。計算b=1,2,3,…12(就像我們剛才對b=5所做的那樣),結果表明b=12是擁有P的最小數。
事實上,對於b=12和c=4,這四個孩子有兩組可能的年齡——(2,2,2,6)和(1,3,4,4),這兩組給出巫師的年齡都是相同的:A=48。因此,對於b=12,即使知道c=4,a=48,也無法推斷出這四個孩子的年齡。這是否意味着b=12是解?
不幸的是,並不一定。對於車號b=13的情況,例如,這三個孩子的兩組年齡——(1,6,6)和(2,2,9),a=36,巫師B不能從巫師A的年齡或他的孩子的數量得出他的孩子的年齡。
知道b=12並不比知道b=13更能確定孩子的年齡。當面對這個謎題時,大多數人經常回答“b=12”,好像這個謎題在某種程度上暗示了b的最小可能解是正確的。但謎題並沒有做出這樣的斷言。此外,如果沒有進一步的推理,你無法在b=12和b=13之間進行選擇,也無法在b的其他值之間進行選擇,正如我進一步的計算所顯示的那樣。
然而b=12才是正確答案,其原因是這個謎題中最有趣和最意想不到的部分。康威精心設計了他的謎題,你必須考慮巫師B的最後陳述,在巫師A的“不”之後,巫師B回答說,“啊哈!我終於知道你多大了!”這樣就排除了b=13。
事實上,對於b=13,有兩個額外的年齡集——(1,2,2,2,6)和(1,1,3,4,4),可以得出a=48。換句話說,如果車號是13,巫師B不能從他的否定答案中推斷出巫師A的年齡,因為他的年齡可以是36或48。因此,應該排除b=13。
然而,當我們考慮b=13的年齡序列並加上1時,消去b=13就會排除b=14。這樣做表明,兒童的年齡集——(1,1,6,6)和(1,2,2,9)——的乘積是a=36,而另兩個年齡集——(1,1,2,2,6)和(1,1,1,3,4,4)——的乘積是a=48。同樣可以排除b=15,並且一個接一個地排除了所有大於12的b。
因此,只有車號12(b=12)以及兩個年齡集(2,2,2,6)和(1,3,4,4)唯一決定了巫師A的年齡:A=48。
我承認我不明白康威是如何想出這個令人難以置信的謎題的!
。