有書友在留言區(qū)要求老夏貼出“鬼谷子算”的解法。老夏就搜羅幾種解法貼出來,和書友共享
解題思路1:
假設(shè)數(shù)為X,Y;和為X+Y=A,積為X*Y=B.
根據(jù)龐第一次所說的:“我肯定你也不知道這兩個數(shù)是什么”。由此知道,X+Y不是兩個素數(shù)之和。那么A的可能11,17,23,27,29,35,37,41,47,51,53,57,59,65,67,71,77,79,83,87,89,95,97.
我們再計算一下B的可能值:
和是11能得到的積:18,24,28,30
和是17能得到的積:30,42,52,60,66,70,72
和是23能得到的積:42,60...
和是27能得到的積:50,72...
和是29能得到的積:...
和是35能得到的積:66...
和是37能得到的積:70...
......
我們可以得出可能的B為....,當(dāng)然了,有些數(shù)(30=5*6=2*15)出現(xiàn)不止一次。
這時候,孫依據(jù)自己的數(shù)比較計算后,“我現(xiàn)在能夠確定這兩個數(shù)字了?!?p> 我們依據(jù)這句話,和我們算出來的B的集合,我們又可以把計算出來的B的集合刪除一些重復(fù)數(shù)。
和是11能得到的積:18,24,28
和是17能得到的積:52
和是23能得到的積:42,76...
和是27能得到的積:50,92...
和是29能得到的積:54,78...
和是35能得到的積:96,124...
和是37能得到的積:,...
......
因為龐說:“既然你這么說,我現(xiàn)在也知道這兩個數(shù)字是什么了。”那么由和得出的積也必須是唯一的,由上面知道只有一行是剩下一個數(shù)的,那就是和17積52。那么X和Y分別是4和13。
解題思路2:
說話依次編號為S1,P1,S2。
設(shè)這兩個數(shù)為x,y,和為s,積為p。
由S1,P不知道這兩個數(shù),所以s不可能是兩個質(zhì)數(shù)相加得來的,而且s<=41,因為如果s>41,那么P拿到41×(s-41)必定可以猜出s了(關(guān)于這一點,參考老馬的證明,這一點很巧妙,可以省不少事情)。所以和s為{11,17,23,27,29,35,37,41}之一,設(shè)這個集合為A。
1).假設(shè)和是11。11=2+9=3+8=4+7=5+6,如果P拿到18,18=3×6=2×9,只有2+9落在集合A中,所以P可以說出P1,但是這時候S能不能說出S2呢?我們來看,如果P拿到24,24=6×4=3×8=2×12,P同樣可以說P1,因為至少有兩種情況P都可以說出P1,所以A就無法斷言S2,所以和不是11。
2).假設(shè)和是17。17=2+15=3+14=4+13=5+12=6+11=7+10=8+9,很明顯,由于P拿到4×13可以斷言P1,而其他情況,P都無法斷言P1,所以和是17。
3).假設(shè)和是23。23=2+21=3+20=4+19=5+18=6+17=7+16=8+15=9+14=10+13=11+12,咱們先考慮含有2的n次冪或者含有大質(zhì)數(shù)的那些組,如果P拿到4×19或7×16都可以斷言P1,所以和不是23。
4).假設(shè)和是27。如果P拿到8×19或4×23都可以斷言P1,所以和不是27。
5).假設(shè)和是29。如果P拿到13×16或7×22都可以斷言P1,所以和不是29。
6).假設(shè)和是35。如果P拿到16×19或4×31都可以斷言P1,所以和不是35。
7).假設(shè)和是37。如果P拿到8×29或11×26都可以斷言P1,所以和不是37。
8).假設(shè)和是41。如果B拿到4×37或8×33,都可以斷言P1,所以和不是41。
綜上所述:這兩個數(shù)是4和13。
解題思路3:
孫龐猜數(shù)的手算推理解法
1)按照龐的第一句話的后半部分,我們肯定龐知道的和S肯定不會大于54。
因為如果和54恰好是53和a,那么孫知道的積M就是M=53*a,于是孫知道,這原來兩個數(shù)中至少有
一個含有53這個因子,因為53是個素數(shù)??墒切∮?00,又有53這個因子的,只能是
53本身,所以孫就可以只憑這個積53*a推斷出這兩個數(shù)術(shù)53和a。所以如果龐知道的
S大于54的話,他就不敢排除兩個數(shù)是53和a這種可能,也就不敢貿(mào)然說“但是我肯定
你也不知道這兩個數(shù)是什么”這種話。
如果53+99
如果S=98+99,那么龐可以立刻判斷出,這兩個數(shù)只能是98和99,而且M只能是98*99,
孫也可以知道這兩個術(shù),所以顯然不可能。
2)按照龐的第一句話的后半部分,我們還可以肯定龐知道的和S不可以表示為兩個素數(shù)的和。
否則的話,如果鬼谷子選的兩個數(shù)字恰好就是這兩個素數(shù),那么孫知道積M后,就可以得到唯一的素因子分解,判斷出結(jié)果。于是龐還是不敢說“但是我肯定你也不知道這兩個數(shù)是什么”這種話。
根據(jù)哥德巴赫猜想,任何大于4的偶數(shù)都可以表示為兩個素數(shù)之和,對54以下的偶數(shù),猜想肯定被驗證過,所以S一定不能是偶數(shù)。
另外型為S=2+p的奇數(shù),其中p是奇素數(shù)的那些S也同樣要排除掉。
還有S=51也要排除掉,因為51=17+2*17。如果鬼谷子選的是(17,2*17),那么孫知道
的將是M=2*17*17,他對鬼谷子原來的兩數(shù)的猜想只能是(17,2*17)。(為什么51要單獨拿出來,要看下面的推理)
3)于是我們得到S必須在以下數(shù)中:
11172327293537414753
另外一方面,只要龐的S在上面這些數(shù)中,他就可以說“但是我肯定你也不知道這兩個
數(shù)是什么”,因為這些數(shù)無論怎么拆成兩數(shù)和,都至少有一個數(shù)是合數(shù)(必是一偶一
奇,如果偶的那個大于2,它就是合數(shù),如果偶的那個等于2,我們上面的步驟已經(jīng)保
證奇的那個是合數(shù)),也就是S只能拆成
a)S=2+a*b或b)S=a+2^n*b
這兩個樣子,其中a和b都是奇數(shù),n>=1。
那么(下面我說的“至少兩組數(shù)”中的兩組數(shù)都不相同,而且的確存在(也就是那些
數(shù)都小于100)的理由我就不寫了,根據(jù)條件很顯然)
a)或者孫的M=2*a*b,孫就會在(2*a,b)和(2,a*b)至少兩組數(shù)里拿不定主意(a和
b都是奇數(shù),所以這兩組數(shù)一定不同);
b)或者M(jìn)=2^n*a*b,
如果n>1,那么孫就會在(2^(n1)*a,2*b)和(2^n*a,b)至少兩組數(shù)里拿不定主意;
如果n=1,而且a不等于b,那么孫就會在(2*a,b)和(2b,a)至少兩組數(shù)里拿不定主
意;
如果n=1,而且a等于b,這意味著S=a+2*a=3a,所以S一定是3的倍數(shù),我們只要
討論S=27就可以了。27如果被拆成了S=9+18,那么孫拿到的M=9*18,他就會在
(9,18)和(27,6)至少兩組數(shù)里拿不定主意。
?。ㄉ厦鎸?1的討論就是從這最后一種情況的討論發(fā)現(xiàn)的,我不知道上面的論證是否
過分煩瑣了,但是看看51這個“特例”,我懷疑嚴(yán)格的論證可能就得這么煩)
現(xiàn)在我們知道,當(dāng)且僅當(dāng)龐得到的和數(shù)S在
C={11,17,23,27,29,35,37,41,47,53}
中,他才會說出“我雖然不能確定這兩個數(shù)是什么,但是我肯定你也不知道這兩個數(shù)
是什么”這句話
孫臏可以和我們得到同樣的結(jié)論,他還比我們多知道那個M。
4)孫的話“我現(xiàn)在能夠確定這兩個數(shù)字了”表明,他把M分解成素因子后,然后組合成
關(guān)于鬼谷子的那兩個數(shù)的若干個猜想中,有且僅有一個猜想的和在C中。否則的話,他
還是會在多個猜想之間拿不定主意。
龐涓聽了孫的話也可以得到和我們一樣的結(jié)論,他還比我們多知道那個S。
5)龐的話“我現(xiàn)在也知道這兩個數(shù)字是什么了”表明,他把S拆成兩數(shù)和后,也得到了
關(guān)于鬼谷子的那兩個數(shù)的若干個猜想,但是在所有這些拆法中,只有一種滿足4)里的
條件,否則他不會知道究竟是哪種情況,使得孫臏推斷出那兩個數(shù)來。
于是我們可以排除掉C中那些可以用兩種方法表示為S=2^n+p的S,其中n>1,p為素數(shù)。
因為如果S=2^n1+p1=2^n2+p2,無論是(2^n1,p1)還是(2^n2,p2)這兩種情況,孫臏都
可以由M=2^n1*p1或M=2^n2*p2來斷定出正確的結(jié)果,因為由M得到的各種兩數(shù)組合,
只有(2^n,p)這樣的組合,兩數(shù)和才是奇數(shù),從而在C中,于是孫臏就可以宣布自己知道
了是怎么回事,可龐涓卻還得為(2^n1,p1)還是(2^n2,p2)這兩種情況犯愁。
因為11=4+7=8+3,23=4+19=16+7,27=4+23=16+11,35=4+31=16+19,37=8+29=32+5,
47=4+43=16+31。于是S的可能值只能在
17294153
中。讓我們繼續(xù)縮小這個表。
29不可能,因為29=2+27=4+25。無論是(2,27)和(4,25),孫臏都可以正確判斷出來:
a)如果是(2,27),M=2*27=2*3*3*3,那么孫可以猜的組合是(2,27)(3,18)(6,9),
后面兩種對應(yīng)的S為21和15,都不在C中,故不可能,于是只能是(2,27)。
b)如果是(4,25),M=4*25=2*2*5*5,那么孫可以猜的組合是(2,50)(4,25)(5,20)
(10,10)。只有(4,25)的S才在C中。
可是龐涓卻要為孫臏的M到底是2*27還是4*25苦惱。
41不可能,因為41=4+37=10+31。后面推理略。
53不可能,因為53=6+47=16+37。后面推理略。
研究一下17。這下我們得考慮所有17的兩數(shù)和拆法:
(2,15):那么M=2*15=2*3*5=6*5,而6+5=11也在C中,所以一定不是這個M,否則4)
的條件不能滿足,孫“我現(xiàn)在能夠確定這兩個數(shù)字了”的話說不出來。
(3,14):那么M=3*14=2*3*7=2*21,而2+21=23也在C中。后面推理略。
(4,13):那么M=4*13=2*2*13。那么孫可以猜的組合是(2,26)(4,13),只有(4,13)
的和在C中,所以這種情況孫臏可以說4)中的話。
(5,12):那么M=5*12=2*2*3*5=3*20,而3+20=23也在C中。后面推理略。
(6,11):那么M=6*11=2*3*11=2*33,而2+33=35也在C中。后面推理略。
(7,10):那么M=7*10=2*5*7=2*35,而2+35=37也在C中。后面推理略。
(8,9):那么M=8*9=2*2*2*3*3=3*24,而3+24=27也在C中。后面推理略。
于是在S=17時,只有(4,13)這種情況,孫臏才可以猜出那兩數(shù)是什么,既然如此,龐涓就知道這兩個數(shù)是什么,說出“我現(xiàn)在也知道這兩個數(shù)字是什么了”。聽了龐涓的話,于是我們也知道,這兩數(shù)該是(4,13)。