S先生與P先生謎題

S先生與P先生謎題

S先生與P先生的謎題,是由美國史丹福大學的麥卡錫提出的,事實上這是一個推理問題。在對題目定義的清楚明確下,為了得到結果進行了一系列的舉例證明與排除,從而在思辨中得出問題的答案。這個謎題從另一側面教會了我們思考問題的方法。

基本介紹

  • 中文名:S先生與P先生謎題
  • 類型推理問題
  • 提出人:麥卡錫
  • 學校美國史丹福大學
題面,解題方法一,解題方法二,

題面

美國史丹福大學的麥卡錫提出的
設有兩個自然數X、Y,2<=X<=Y<=99,S先生知道這兩個數的和S,P先生知道這兩個數的積P,他們二人進行了如下對話:
S:我確信你不知道這兩個數是什麼,但我也不知道。
P: 一聽你說這句話,我就知道這兩個數是什麼了。
S: 我也是,現在我也知道了。
現在你能通過他們的會話推斷出這兩個數是什麼嗎?(當然,S和P先生都是非常聰明的)
每一道題的解法都有它的獨特處。若具有良好的解題思想,思辨意識,有始有終,持之以恆,定會得到自己的滿意答案。

解題方法一

s先生自己不知道x,y
說明和數s不是4,5,197,198
否則x,y分別只能為2,2;2,3;98,99;99,99。均只有一種情況。即可確定x,y了。
s先生知道p先生不知道x,y
首先,什麼樣的數p先生可以知道呢?
如s=8
8=2*4 8=1*8 後者是不可能的( x,y>=2 )
又如 s=25
25=5*5 只有一種
這樣p先生就能知道x,y
這說明s分解後 s=M1+N1=M2+N2=.....
M1*N1 分解成 乘積 的形式有 兩種或兩種以上,
若 s=11
11=2+9 2*9=18 18=2*9=3*6
11=3+8 3*8=24 24=2*12=3*8=4*6
11=4+7 4*7=28 28=2*14=4*7
這樣s先生可以確定p先生不能知道x,y
所以s先生知道的 和數s 是如下的數
SA={ 11,17,23,27,29,35,37,41,47,51,53...}
SA也不可以是29,因為29=7+11+11,則x,y=88,11,
同樣得到SA={11,17,23,27}
p先生聽了s先生的話後,知道了x,y
我們可以想像p先生根據s先生的話,已經知道s先生知道的和數是集合SA中的數
若自己所知道的乘積p分解成m*n後 其中有一個(m+n)是集合SA中的數
則 m,n就是所求的數x,y
如 p=18
18=2*9 2+9=11
18=3*6 3+6=9
11屬於SA
x,y就是 2 和 9
若p=72
72=2*36 2+36=38
72=3*24 3+24=27
......
72=8*9 8+9=17
其中27,17都屬於SA
於是72被排除了
所以p先生所知道的乘積是如下
pb={18,24,28,30,50,52,....}
所知道的x,y是乘積在pb中,且 乘積分解後的兩數的和只有一個 在SA中的數對,記為
XY={(x1,y1),(x2,y2),.....}
s先生也知道了x,y
可以知道,這時s先生也知道p先生知道的數的範圍XY
如果s分解後的兩數s=m+n,(m,n)只與XY中的一個數對相同
這樣,s先生也就找到了x,y ,但是沒有這樣的數。

解題方法二

我看到過答案,這是根據我的理解寫下的
S:我確信你不知道,但我也不知道
為什麼s先生這么確定?換句話說P先生得到怎樣的組合就能立刻知道mn的值呢?
先看看哪些情況下p先生能立刻得到答案
(1)mn不能同時為質數
mn為質數,那么他們的乘積分解成兩個因子乘積的可能性就唯一了,那么P先生就會立刻得知mn的值。
譬如34=1*34=2*17,因為nm是大於等於2的,那么1*34這樣的組合是不可能的,那么mn就是2和17。
Mn不為質數,那么他們可能之中有1個質數,或者2個同為合數。
(2) 如果mn中有一個質數,那么那個質數不會大於50
如果mn有一個大於50,那么他們分解成兩個因子乘積的可能性中,其他的分解方式都會有一個因子會超過100,然么分解方式必然會被P排除,那就只剩下一種方式,P也就立刻知道答案。
譬如318 = 6*53 = 3*106 = 2*159,因為mn小於等於99,那么後兩種可能性肯定被排除。mn就肯定是6,53。
(3) 如果mn都是合數,那么都不會大於50
理由同上。可就是P分解因子,只有一種情況下mn是小於100的,其他情況mn必有一數大於等於100。
其實mn的積也不會是8或者27,因為8 = 2*4 27=3*9,分解因子也就一種情況
Mn的值在以上情況下P先生可以立刻知道答案,那么也就是說S先生看到mn的和可以立刻推理出mn不可能存在上述的情況
(4)S不能分解成三個這樣的質數之和:
如果S=29=7+11+11.那么X,y=11,88,或7,121 後面一種不符合。
又如果S=35=7+11+17,那么x,y=7,187或11,119或17,88 前面兩種不符合。
(1)S肯定是奇數
S肯定是奇數,如果s是偶數,那么mn有可能是質數。(原作者引用了哥德巴赫猜想:每一個大於2的偶數都是兩個素數的和。雖然這個猜想沒有證明,但是在100範圍以後可以實驗證明這個猜想是正確的。如果有例外的話,這個猜想也就不會這么有名了。也就是說4-100範圍以內的偶數都可以用兩個質數的和表示。)
(2)mn的和不能大於54
這個推測的依據是建立在上面2、3之中的。因為S先生確信P先生不知道mn的值,所以2、3的情況是不會從mn的和中反應的。
(3)S-減去2的值不是質數
質數中,2是一個特例,他是質數中唯一的偶數。既然mn不能同時為質數,那么s減去2的值也就不是質數了。
(4)S不等於29,35,37,41,47,51,53.
有上得S只能取11,17,23,27。
P: 聽你說這句話,我就知道這兩個數了
P先生和我們一樣,現在知道mn的和就只有上面的可能了。他只要把mn的積分解兩個因子乘積,所有可能性中,有且只有一組的可能性中兩個因子的和剛好是上面11個數中的一個,那么P先生就知道mn的值了。
假設P = 30 = 5*6 = 2*15,而5+6=11,2+15 =17,11和17都在上面11個數之中,那么P先生就無法判斷mn到底是哪組數。所以P就不會等於30。
既然知道P先生的判斷方法,現在就從11個數出發,一個個的推導。
S: 我也是,現在我也知道了
S先生根據P先生的話知道了mn的積分解因子,只有一組的因子之和為11個數中間的一個。而S先生同時也立刻知道mn的值。我們可以推斷,如果把mn之和拆成數個由一個奇數和一個偶數的組合,只有一個組合符合下面的條件:這個奇數和偶數的乘積符合第2條P先生的判斷,也就是把這個積分解成兩個因子乘積,所有分解情況中,有且只有一組的情況中兩個因子的和剛好是上面11個數中的一個。這樣S先生也就能知道mn的值了
我們只要把11個數拆成若干種奇偶組合,如果有2個或者2個以上的組合滿足P先生判斷條件,那么這個數就不是mn的和。:
(1)11 = 2+9=4+7=6+5=8+3
2*9 = 18 = 3*6,3+6=9不在10個數中,那么2*9符合。
4*7=28=2*14,前面說過mn是一奇一偶,2*14不考慮,4*7符合。
6*5=30=2*15,而6+5=11,2+15=17,兩個數都在11個數中,那么P先生是無法判斷,所以這個組合可以略過。
8*3 = 24 = 2*12=4*6,,那么2*12,4*6不用考慮,8*3符合
現在有3組數字元合,那么11就不是mnd的和了
從上面看,如果把11拆成2的次方和一個質數的組合,那么只有一種分解是一奇一偶,其他的情況都是2個偶數。(4,7) = (2^2,7),(3,8) = (3,2^3),這樣的組合分解就具有唯一性,就能滿足我們的要求。11可以拆成2個這樣的組合,11就可以排除了。
(2)23 = 2^2+19 = 2^4+7
27 = 2^2+23 = 2^3+19
上面是數可以拆成2組2的次方和一個質數,也就是有2組符合P先生的判斷,故這些數可以排除,那就只剩下17,29了
(3)29 =16+13=2+27
2*27 = 54 =3*18=6*9,符合
16*13 是2^4和13,13是質數,肯定符合
29有2組符合,所以29排除。
(4)現在就只剩下17了。
17=4+13=6+11=7+10=8+9
4*13=52,6*11=66,7*10=70,8*9=72都只有一組符合。排除故無解。

相關詞條

熱門詞條

聯絡我們