和與積的問題

和與積的問題()是一道邏輯謎題,又因為其題面上似乎缺乏足夠的解題信息而得名不可能的謎題()。該謎題由於1969年首次發表,而別名「不可能的謎題」則由馬丁·加德納所提出。儘管略顯困難,此謎題仍然是可解的,並有很多與之類似的謎題。

簡介
謎題
此謎題有許多版本,以下為最原始的版本:

已知x和y是兩個大於1的整數,滿足x小于y,而兩數之和不大於100(即x, y \in \mathbb{Z},1 ,x + y \le 100)。

S和P則是兩位邏輯非常好的數學家。另外,S知道兩數之和x + y,P則知道兩數之積xy。兩人都知道上述資訊後,對話如下:

  • S先說:「P不知道x和y的值。」
  • P回復:「現在我知道x和y的值了。」
  • S再說:「現在我也知道x和y的值了。」

請問x和y兩數分別為多少?

謎底
P知道的乘積為52,S知道的和為17,換句話說,(x, y) = (4, 13)。

解析
數學家視角
以下將按對話順序分析數學家P和S的想法:

獲取資訊後
P:已知積 p = 52,(x, y)可能為(2, 26)或(4, 13),因此不知兩數具體為何。

S:已知和 s = 17,(x, y)可能的情況如下:

由上表可知,在所有S認為可能的乘積p下,P皆不能確定兩數具體為何,因而說出:「P不知道x和y的值」。

S第一句話後
P:若S能斷言自己(P)不知道兩數,則S手中的s對應的所有可能乘積,均可引出超過一組可能的解。

因此,P分別針對s = 17和s = 28的可能情況:

  • s = 28時,(x, y) = (5, 23)而p = 115,和(x, y) = (11, 17)而p = 187,兩個可能乘積都只能引出一種可能解,使得S無法斷言P不知道兩數。
  • s = 17時,經驗證後其滿足條件。

此時P確定s = 17,(x, y) = (4, 13),因而說出:「現在我(P)知道x和y的值了」。

P回應後
S:若P能宣告他知道x和y的值,則P手中的p對應的可能組合中,「恰好只有一組」的和s能滿足「所有對應的可能乘積,均可引出超過一組可能解。」的篩選條件。

因此,S分別針對自己手中的7種可能乘積進行模擬與排除:

由上表可知,唯有p = 52時P可以排除其他干擾項並得出唯一解。

此時S確定p = 52,(x, y) = (4, 13),因而說出:「現在我(S)也知道x和y的值了」。

讀者視角
謎題給出的基本條件稱為條件A:x, y \in \mathbb{Z},1 ,x + y \le 100。

令兩數之和為s,兩數之積為p = xy,以下所有數對(x, y)皆預設符合條件A

從S的第一句話可知,s所拆分出的每一組(x, y),其乘積p皆可拆分成多於一組符合條件A的數對。因此,S在只知道s的情況下,便能肯定P無法單憑p確定x和y的值。(條件B

從P的第一句話可知,P在知道p並得知s符合條件B後,檢視了p的所有可能分解(x, y),發現其中「恰好只有一組」對應的和s = x + y符合條件B,故P得以確定x和y的值。(條件C

從S的第二句話可知,S在得知P已確定答案後,檢視了s的所有可能拆分(x, y),發現其中「恰好只有一組」對應的積p = xy符合條件C,故S亦得以確定x和y的值。(條件D

依據條件A,s的最小值為2 + 3 = 5,最大值為100。以下篩選出所有符合條件B的s可能值:

  • 若x, y皆為質數,則p = xy只有唯一分解,故s不可能拆分為兩個質數之和。由此可排除所有不小於8的偶數(根據哥德巴赫猜想,大於2的偶數皆可表示為兩個質數之和,且在100以內皆成立;注意到6 = 3 + 3不滿足x ),以及「2 + \,奇質數」的形式。
  • 若p = q^3(q為質數),則p僅有唯一分解(q, q^2),故s不可能拆分為(q, q^2),由此排除6 = 2 + 2^2。
  • 若p含有大於50的質因數q,由於y ,必定有y = q,故p僅有唯一分解(x, q),由此排除所有不大於100且可拆為(x, 53)及以上質數的s,即排除不小於53 + 2 = 55的整數。
  • 若p = 2q^2(q > 10為質數),由於y ,y不可能為q^2,故p僅有唯一分解(q, 2q),即s不可能為3q。由此排除51 = 3 \times 17。

s剩餘的可能值為:
:11, 17, 23, 27, 35, 37, 41, 47, 53(記為集合*)

上述可能值皆符合條件B。因為s為奇數,任何拆分出的(x, y)必為一奇數a與一偶數2b:

  • 當b = 1時,a必為合數(否則即為「2 + \,奇質數」,已被排除)。由於a \le 53 - 2 = 51,故a必有小於等於7的質因數q。乘積p = 2a可另拆為a/q與2q,易知其和不大於100,符合條件A
  • 當b > 1時:

若a \neq b,則乘積p = 2ab亦可拆為2a與b。由於a \le 53 - 4 = 49,其和2a + b = (a + 2b) + (a - b) = s + (a - b) \le 53 + (49 - 2) = 100,符合條件A**。
* 若a = b,則a為合數(a不是質數,因其3倍不在集合中)。此時a = s/3 \le 53/3 ,故a必有質因數3。乘積p = 2a^2可另拆為2a/3與3a,其和2a/3 + 3a ,符合條件A。(亦可直接驗證,集合*中僅有27為3的倍數。)

接下來檢查集合*中的s可能值是否滿足條件D

注意到若p = 2^k q(其中q為奇質數),則p僅有一組和為奇數的可能拆分(2^k, q)。因此,若其和2^k + q符合條件B(即屬於集合*),則p必然符合條件C

  • 11可拆分為(4, 7)與(8, 3),對應的乘積28 = 2^2 \times 7(和為11)與24 = 2^3 \times 3(和為11)皆符合條件C,故11不滿足條件D
  • 同理,23可拆為(4, 19)與(16, 7);27可拆為(4, 23)與(8, 19);35可拆為(4, 31)與(16, 19);37可拆為(8, 29)與(5, 32);47可拆為(4, 43)與(16, 31),故23, 27, 35, 37, 47皆不滿足條件D

剩餘需要檢查的s可能值為17, 41, 53:

  • 41拆分為(4, 37)的積符合條件C。另外拆分為(2, 39)時,積78可拆為(6, 13)(和為19)與(3, 26)(和為29),由於19與29皆不在集合*中(不符合條件B),故(2, 39)的積亦符合條件C,導致41不滿足條件D
  • 53拆分為(16, 37)的積符合條件C。另外拆分為(5, 48)時,積240可拆為(15, 16)(和為31)與(3, 80)(和為83),由於31與83皆不在集合*中,故(5, 48)的積亦符合條件C,導致53不滿足條件D

檢查17的各拆分組合:

  • (2, 15)的積可拆為(5, 6),和為11(符合條件B),故(2, 15)的積不符合條件C
  • 同理,(3, 14)的積可拆為(2, 21)(和為23);(5, 12)的積可拆為(3, 20)(和為23);(6, 11)的積可拆為(2, 33)(和為35);(7, 10)的積可拆為(2, 35)(和為37);(8, 9)的積可拆為(3, 24)(和為27)。上述各拆分的積所對應的另一組拆分,其和皆屬於集合*(符合條件B),故這些拆分的積皆不符合條件C

因此,17的所有拆分中,唯有拆分為(4, 13)時其積才符合條件C,故17滿足條件D

由於17是集合*中唯一滿足條件D的值,由此可得出s = 17,x = 4,y = 13。

參見

  • 謝麗爾的生日
  • 三個杯子問題

參考文獻
外部連結

评论 (0)

  • 还没有评论,来抢沙发吧。