S先生與P先生謎題

2021-07-10 13:22:12 字數 3878 閱讀 5691

美國史丹福大學的麥卡錫提出的

設有兩個自然數x、y,2<=x<=y<=99,s先生知道這兩個數的和s,p先生知道這兩個數的積p,他們二人進行了如下對話:

s:我確信你不知道這兩個數是什麼,但我也不知道。

p: 一聽你說這句話,我就知道這兩個數是什麼了。

s: 我也是,現在我也知道了。

現在你能通過他們的會話推斷出這兩個數是什麼嗎?(當然,s和p先生都是非常聰明的)

方法一:

我把思路說一下吧

1.s先生自己不知道x,y

說明和數s不是4,5,197,198

2.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=sa也不可以是29,因為29=7+11+11,則x,y=88,11,

同樣得到sa=

3.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=所知道的x,y是乘積在pb中,且 乘積分解後的兩數的和只有乙個 在sa中的數對,記為

xy=4.s先生也知道了x,y

可以知道,這時s先生也知道p先生知道的數的範圍xy

如果s分解後的兩數s=m+n,(m,n)只與xy中的乙個數對相同

這樣,s先生也就找到了x,y ,但是沒有這樣的數。

方法二:

我看到過答案,這是根據我的理解寫下的

1、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。

2、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個數出發,乙個個的推導。

3、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都只有一組符合。排除故無解。

當 「HTTP」 先生遇上「S」小姐

情人節的晚上,天空中淅淅瀝瀝的下著帶有些寒意的小雨。http 先生孤零零的坐在咖啡廳中,對著面前的電腦發呆。他有意的遮蔽掉了周邊情侶們的竊竊私語,這對單身的他來說是 也是一陣陣傷害。這時,咖啡廳的門被開啟了,風姿綽約的 s 小姐出現在 http 先生的眼中。當 http 先生遇見 s 小姐,會產生怎...

L先生與階乘

沒錯,可憐的l先生又遇到了一道數學難題!n的階乘的末尾有多少個0?多測試例,處理到檔案結束。總測試例數量 15000 每行有乙個測試例,為乙個非負整數n 0 n 15000 每個測試例對應的輸出佔一行 1 230 00 思路 如果我們要判斷出0的個數,如果我們直接求n 那麼資料會很大,資料可能溢位,...

3675 唐納德先生與假骰子

單點時限 6.0 sec 記憶體限制 1024 mb 嗨,唐納德先生又來了。他又帶了一枚假骰子,這個骰子的各個面的點數依然是 1,2,3,4,5,6,但是六個面向上的概率卻不一定都是 1 6,而變成了 p1,p2,p3,p4,p5,p6。現在它要跟你玩乙個遊戲。首先你也得準備一枚骰子,各個面的點數同...