和與積的問題(英語:Sum and Product Puzzle)是一道邏輯謎題,也稱為不可能的謎題(英語:The Impossible Puzzle),因為它的題面似乎缺乏足夠的解題信息。該謎題由漢斯·弗賴登塔爾得在1969年首次發表[1]
,而「不可能的謎題」這個名字是由馬丁·加德納所提出的[2]。這個謎題是可以解開的,儘管略顯困難。還有很多與之類似的謎題。
註:這謎題有很多個版本。這裡用最原始的版本。
X和Y是二個整數,大於1,和不大於100,而X嚴格小於Y (1 < X < Y, X+Y ≦100)。
S和P是兩個數學家,邏輯都非常好。S知道兩者的和 X+Y。P知道兩者的積 XY。兩個人都知道上述的資訊後的對話如下:
- S說:「P不知道X和Y的值。」
- P說:「我知道X和Y的值了。」
- S說:「現在我也知道X和Y的值了。」
X和Y分別是多少?
答案是 X 和 Y 分別是4和13,P一開始知道的乘積是52,S一開始知道的和是17。
一開始P不知道答案,因為有兩個可能性
- 52 = 4 × 13 = 2 × 26
而S也知道P不知道答案,因為所有加起來為17,符合規則的數字,相乘後的乘積都無法由乘積直接反推X和Y。
但S和P都可以根據對方的說明刪除一些不符合說明的解,因此得到答案。
令p為兩數之積,s為兩數之和。
P知道p=52,P猜測(2,26)和(4,13)可能是答案,因此P知道s=28或s=17。
若s=28:
- 可能答案會是(2,26)、(3,25)、(4,24)、(5,23)、(6,22)、(7,21)、(8,20)、(9,19)、(10,18)、(11,17)、(12,16)及(13,15)。
- 但若答案是(5,23),5*23的乘積(115)無法再表示為其他兩個大於一數字的乘積,因此若答案是(5,23),P就知道答案了。
- 而若答案是(11,17),11*17的乘積(187)無法再表示為其他兩個大於一數字的乘積,因此若答案是(11,17),P就知道答案。
- P有可能知道X和Y的值,因此S不能斷定說「P不知道X和Y的值。」
若s=17:
- 可能答案會是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)。
- 每組數字中都至少有一個是合數,因此乘積可以表示為其他兩個大於一數字的乘積,S可以確定P不會知道正確的數字。
- 因此S可以說「P不知道X和Y的值。」
因此當S說「P不知道X和Y的值。」時,P可以刪除(2,26),剩下的(4,13)就是答案。
S知道s=17,可能的答案有(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)。S知道p可能是30、42、52、60、66、70或72。
當P說:「我知道X和Y的值了。」時,S可以知道P依照對話可排除大部份的可能解,只留下一個可能解。
情形1(p=30)
P知道p=30,可能的答案有(2,15)、(3,10)及(5,6)。P知道s可能是17、13或11。
若s=17:
- S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=13:
- S會猜可能答案是(2,11)、(3,10)、(4,9)、(5,8)及(6,7),其中(2,11)都是質數。
- 若答案是(2,11),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=11:
- S會猜可能答案是(2,9)、(3,8)、(4,7)及(5,6)。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
因此若S說 「P不知道X和Y的值。」時,P可以排除(3,10),可能答案有(2,15)及(5,6),並不唯一。
情形2(p=42)
P知道p=42,可能的答案有(2,21)、(3,14)及(6,7)。P知道s可能是23、17或13。
若s=23:
- S會猜可能答案是(2,21)、(3,20)、(4,19)、(5,18)、(6,17)、(7,16)、(8,15)、(9,14)、(10,13)及(11,12).
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=17:
- S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=13:
- S會猜可能答案是(2,11)、(3,10)、(4,9)、(5,8)及(6,7),其中(2,11)都是質數。
- 若答案是(2,11),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
因此若S說 「P不知道X和Y的值。」時,P可以排除(6,7),可能答案有(2,21)及(3,14),並不唯一。
情形4(p=60)
P知道p=60,可能的答案有(2,30)、(3,20)、(4,15)、(5,12)及(6,10)。P知道s可能是32、23、19、17或16。
若s=32:
- 根據哥德巴赫猜想及其实际验证表明,至少以下的偶数都能表示成两个质数的和,因此32可以表示為二個質數的和((3,29)和(13,19))。
- 若答案是(3,29)或(13,19),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=23:
- S會猜可能答案是(2,21)、(3,20)、(4,19)、(5,18)、(6,17)、(7,16)、(8,15)、(9,14)、(10,13)及(11,12),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=19:
- S會猜可能答案是(2,17)、(3,16)、(4,15)、(5,14)、(6,13)、(7,12)、(8,11)及(9,10),其中(2,17)都是質數。
- 若答案是(2,17),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=17:
- S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=16:
- 根據哥德巴赫猜想及其实际验证表明,16可以表示為二個質數的和((3,13)和(5,11))。
- 若答案是(3,13)或(5,11),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
因此若S說 「P不知道X和Y的值。」時,P可以排除(2,30), (4,15)及(6,10),而可能答案有(3,20)及(5,12),並不唯一。
情形5(p=66)
P知道p=66,可能的答案有(2,33)、(3,22)及(6,11)。P知道s可能是35、25或17。
若s=35:
- S會猜可能答案是(2,33)、(3,32)、(4,31)、(5,30)、(6,29)、(7,28)、(8,27)、(9,26)、(10,25)、(11,24)、(12,23)、(13,22)、(14,21)、(15,20)、(16,19)及(17,18),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=25:
- S會猜可能答案是(2,23)、(3,22)、(4,21)、(5,20)、(6,19)、(7,18)、(8,17)、(9,16)、(10,15)、(11,14)及(12,13),其中(2,23)都是質數。
- 若答案是(2,23),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=17:
- S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
因此若S說 「P不知道X和Y的值。」時,P可以排除(3,22),而可能答案有(2,33)及(6,11),並不唯一。
情形6(p=70)
P知道p=70,可能的答案有(2,35)、(5,14)及(7,10)。P知道s可能是37、19或17。
若s=37:
- S會猜可能答案是(2,35)、(3,34)、(4,33)、(5,32)、(6,31)、(7,30)、(8,29)、(9,28)、(10,27)、(11,26)、(12,25)、(13,24)、(14,23)、(15,22)、(16,21)、(17,20)及(18,19),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=19:
- S會猜可能答案是(2,17)、(3,16)、(4,15)、(5,14)、(6,13)、(7,12)、(8,11)及(9,10),其中(2,17)都是質數。
- 若答案是(2,17),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=17:
- S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
因此若S說 「P不知道X和Y的值。」時,P可以排除(5,14),而可能答案有(2,35)及(7,10),並不唯一。
情形7(p=72)
P知道p=72,可能的答案有(2,36)、(3,24)、(4,18)、(6,12)及(8,9)。P知道s可能是38、27、22、18或17。
若s=38:
- 根據哥德巴赫猜想及其实际验证表明,38可以表示為二個質數的和((7,31))。
- 若答案是(7,31),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=27:
- S會猜可能答案是(2,25)、(3,24)、(4,23)、(5,22)、(6,21)、(7,20)、(8,19)、(9,18)、(10,17)、(11,16)、(12,15)及(13,14),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
若s=22:
- 根據哥德巴赫猜想及其实际验证表明,22可以表示為二個質數的和((3,19)或(5,17))。
- 若答案是(3,19)或(5,17),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=18:
- 根據哥德巴赫猜想及其实际验证表明,18可以表示為二個質數的和((5,13)或(7,11))。
- 若答案是(5,13)或(7,11),P就知道正確數字了。
- S不能說「P不知道X和Y的值。」
若s=17:
- S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9),每組數字中都至少有一個是合數。
- S可以確定P不會知道正確的數字。
- S可以說「P不知道X和Y的值。」
因此若S說 「P不知道X和Y的值。」時,P可以排除(2,36)、(4,18)和(6,12),而可能答案有(3,24)及(8,9),並不唯一。
只有情形3最後只有一個可能答案,因此S可以確定(4,13)是正確答案。
問題給出的條件是
- X, Y 是兩個整數,適合1 < X < Y,X + Y ≤ 100。(條件1)
令兩數之和為s,兩數之積為p。以下提到的(x,y),都指符合條件1的一對整數x和y。
從S的第一句話,p可分解成多於一個(x,y)。而且S雖不知道p的值,但檢查了s可分拆成的所有(x,y)後,其積xy都有多於一個分解符合條件1,因此S可以肯定P不知道X, Y的值。(條件2)
從P的第一句話,P知道p的值,也知道s符合條件2。檢查了p可分解成的所有(x,y),只有一個的和x + y符合條件2,所以P得到X, Y的值。(條件3)
從S的第二句話,S知道s的值,也知道P的分析,推出p符合條件3。檢查了s可分拆成的所有(x,y),只有一個的積xy符合條件3,所以S得到X, Y的值。(條件4)
按條件1,s的可能值最小是2 + 3 = 5,最大是100。以下找出s的所有符合條件2的可能值:
- 若(x,y)都是質數,則xy有唯一分解,故s不可分拆為(符合條件1的)質數對。排除不小於8的偶數,及2+奇質數。(按照哥德巴赫猜想,大於2的偶數都是兩個質數的和,且對不太大的偶數都成立。不過6不是兩個相異質數的和。)
- 若xy = q3,q是質數,則xy有唯一分解(q,q2),故s不可能分拆為(q,q2)。排除6 = 2 + 22。
- 若xy有大於50的質因數q,由於y < 100,因此y = q,即xy有唯一分解(x,q),故s不可能分拆為(x,53)。排除不小於53 + 2 = 55的整數。
- 若xy = 2q2,q > 10是質數,由於y < 100,y不等於q2,因此xy有唯一分解(q,2q),故s不可能為3q。排除51 = 3·17。
s的餘下的可能值為
- 11, 17, 23, 27, 35, 37, 41, 47, 53. (*)
以上的可能值都符合條件2:因為s是奇數,任何分拆出的(x,y)必為一個奇數a和一個偶數2b。
- 當b = 1時,a是合數,a ≤ 53 - 2 = 51,故有質因子q ≤ 7,xy = 2a 可分解成a/q和2q,易知其和小於100,符合條件1。
- 當b > 1時,
- 若a ≠ b,則xy = 2ab 也可分解成2a和b。因為a ≤ 53 - 4 = 49,
- 2a + b = a + 2b + (a - b) = s + (a - b) ≤ 53 + (49 - 2) = 100
- 符合條件1;
- 若a = b時,a是合數(a不是大於10的質數,也不是小於10的質數,因其3倍都不是s的可能值),a = s/3 ≤ 53/3 < 18,故有質因子3,則xy = 2a2也可分解成2a/3和3a,
- 2a/3 + 3a < 66
- 符合條件1。(也可直接驗證,此時s的可能值是3a,而(*)中只有27是3的倍數。)
以下檢查s的符合條件2的可能值,即(*)中的值,是否滿足條件4:
注意到若p = 2k q,其中q是奇質數,則p僅有一個(符合條件1的)分解2k和q,使其和是奇數,故此若其和2k + q符合條件2,則p滿足條件3。
- 11可分拆成(4,7)和(8,3),從上得知兩者的積28和24都符合條件3,故11不滿足條件4。
- 類似地,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都不滿足條件4。
餘下需要檢查s的可能值 17, 41, 53。17可分拆成(4,13),41可分拆成(4,37),53可分拆成(16,37),這些分拆的積都符合條件3。
- 41分拆成(2,39),其積78分解成(6,13),和為19;其積分解成(3,26),和為29,都不符合條件2,故(2,39)的積符合條件3,41不滿足條件4。
- 53分拆成(5,48),其積240分解成(15,16),和為31;其積分解成(3,80),和為83,都不符合條件2,故(5,48)的積符合條件3,53不滿足條件4。
檢查17的各分拆:
- (2,15)的積可分解為(5,6),其和11符合條件2,故(2,15)不符合條件3。
- 類似地,(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。各積的上述另一分解的和都符合條件2,故各積都不符合條件3。
因此17分拆成(4,13),其積才符合條件3,故17滿足條件4。
由於17是(*)中唯一滿足滿件4的值,得出s = 17, X = 4, Y = 13。
Hans Freudenthal, Nieuw Archief Voor Wiskunde, Series 3, Volume 17, 1969, page 152
Gardner, Martin, Mathematical Games: A Pride of Problems, Including One That Is Virtually Impossible, Scientific American, December 1979, 241: 22–30.