第169章 格物學宗師收徒(上)
第169章 格物學宗師收徒(上)
[正文]第169章 格物學宗師收徒(上)
------------
列舉法,其實也是計算機程式設計演算法裡的一種。說的是利用計算機運算速度快、精確度高的特點,對要解決問題的所有可能情況,一個不漏地進行檢驗,從中找出符合要求的答案,因此列舉法是透過犧牲時間來換取答案的全面性。
這個方法,一般用人腦是沒有辦法完成的!可好在,《孫子演算法》裡的那個“求餘難題”的原題資料都是比較簡單的,所以蕭讓只稍加推算便知道了結果!――當然了,這其實也是在他在明白“中國剩餘定理”原理基礎上所採取的一種取巧方法而已。實質上,他如果不知道結果會比較簡單的話,他是不可能採取這樣的列舉法的!而是應當認認真真,踏踏實實地用一般的方法來進行運算!只有這樣,才能在資料隨意變換的時候都能夠正確地得出答案。所謂“萬變不離其宗”,就是這麼個道理。
“哼,黃口小兒,不知死活!”
李烏光冷笑一聲,很快就沉吟著準備出題了!他這個人,相對其他高句麗人其實還算是比較謙虛的,可是那也得看是在哪方面,在“格物學”上面,他就是整個高句麗數一數二的宗師了,所以自然也有些傲氣!再加上他的兄長當初在大隋被蕭讓羞辱一回,所以他一接到淵太祚的“請柬”,馬上就二話不說地趕來“助拳”了。可是沒想到,今天的“復仇之計”出師不利,才剛一開頭呢。就被蕭讓在他最為得意的《孫子演算法》上面“狠狠”地扇了一記耳光!當然了,他並不認為那是自己的失利,或者是蕭讓的學識淵博,而是認為蕭讓在這個過程中取了巧。所以現在正憋著一股勁要在蕭讓的頭上找回面子。
“有物不知其數,三個一數餘一,五個一數餘二,七個一數又餘三,問該物總數幾何?”1
此題其實與前面《孫子演算法》裡的原題是非常相近的,所不同的是,其中的餘數換了,所以總體來講變化還是不大的。這其實就是李烏光對蕭讓的蔑視了。因為他看死了蕭讓剛才之所以能得出那原題的答案來,根本就是事先知道的,可現在這麼一變化,蕭讓再想算到那答案。那就是痴心妄想了!
“是五十二……”
李烏光的話音其實才剛落,可是蕭讓提筆只在紙上小算了那麼一會,馬上就報出了答案來了!這一次,他用的可不再是列舉的方法了!因為他明白,這樣的方法並不是什麼時候都管用的!前面一次他之所以敢用。那就是對原題有印象,知道結果會在30以內,所以才採用的列舉法,可是現在。他根本不知道結果到底會在那個範圍之內,所以自然是要舉用一般的方法了。
“n=70×r1+21×r2+15×r3-p×105......r1是1。r2是2,r3是3。結果應該就是52……”
這就是蕭讓剛才在紙上所寫下的計算過程了。這個計算過程說起來其實也簡單,那就是他用“中國剩餘定理”推算出來的,首先,那“105”其實是除數“3”、“5”、“7”的公倍數,而“70”、“21”、“15”則分別是“105”各約去模數“3”、“5”、“7”後,再分別乘以整數“2”、“1”、“1”從而得到的。
推廣到一般情形:設有一數n,分別被兩兩互素的幾個數a1、a2、……an相除得餘數r1、r2、……rn,即n≡rimodaii=1、2、……n,只需求出一組數k,使滿足1modaii=1、2、……n,那麼適合已給一次同餘組的最小正數解是p是整數,m=a1×a2×……×an,這就是現代數論中著名的“中國剩餘定理”。
它的基本形式其實是早已經包含在《孫子算經》“物不知數”題的解法之中的了。只是《孫子算經》沒有明確地表述這個一般的定理,所以能透徹掌握這其中變化的古人可以說是少之又少!即便是李烏光這個高句麗最博學的格物學天才,其實也只懂得比較小的變化而已,一旦將除數“3”、“5”、“7”進行變換,他很可能就“嗝屁”了。――當然,也不是完全解不出來,只是在時間上可能要用上四五天的時間而已。
“不……不可能,你這答案必……必定是錯的!”
李烏光聽到蕭讓的說出答案,他第一個的反應就是發愣,接著就是不相信,強烈地質疑蕭讓根本就是隨口說的一個數字用來敷衍他的,要不然,他怎麼可能會那麼快就解出來了?
他會這麼認為其實一點都不奇怪,事因就是他這個在《孫子演算法》上造詣極高的高句麗“格物學”第一人,要算出這經過了變化的“物不知數”問題也是不容易的,快的話,也需要一刻鐘的時間,慢的話甚至要半個時辰,所以他是一點都不相信蕭讓在轉眼之間就算出答案了的。
“呵呵!說你是井底之蛙,你還不承認?對與不對,你可否先算上一遍再來說話?”
蕭讓自認自己是絕對沒有算錯的,所以自然不會給李烏光留一絲的面子,畢竟這李烏光是高句麗人,他們可從一開始的時候心裡就憋著壞主意了!真給他們面子,那就是跟自己過不去了!
“哼,本官要如何做,用不著你多言!”
李烏光嘴上雖然是這麼說,可他終究還是拿起了筆來,然後開始默默地算起這在他心裡認為是極為難的“物不知數”問題了!剛開始算,他的臉上雖然難看,可是還稍帶著一絲不屑的,因為他認為蕭讓剛才所說的答案肯定是錯的,可是算著算著,他的神情是越來越嚴肅了,到最後甚至一“顫”,眼裡露出盡是不信的神色!
“哼,如何?小子的答案可曾有錯?”
蕭讓看到他這副神情就知道他肯定是已經算出答案來了,所以一臉笑容地問道。可別說他太囂張,半點不懂得低調!可是這低調是當真低調不起的,而且那李烏光和在場的高句麗人都太過“咄咄逼人”了,要不是如此,蕭讓還真不打算做得那麼出格。
“哼!老夫還沒算完!”
李烏光對於蕭讓的“挑釁”,那是下意識地就作了“反擊”,可是他這“反擊”可也有個前提,那就是稍後的結果確實能如他想的那般,最後來個“翻天覆地”的轉變,也就是根本不是“52”這個答案,所以就見到他輕輕擦了擦自己頭上的汗水,深吸一口氣之後就再次開始在紙上算道了:“三三數之,取數七十,與餘數一相乘;五五數之,取數二十一,與餘數二相乘;七七數之,取數十五,與餘數三相乘。將諸乘積相加,然後減去一百零五的倍數。……”
這是《孫子演算法》上有關“物不知數”問題的原文解法,不過並沒有詳述解題原理,所以只要稍有變化,學習者就得好好考究一番,看看到底哪裡應該維持原樣,哪裡又要做些變化!又經過了大概一刻鐘的時間,第二次的運算結果終於是出來了,很不幸的,仍然是那個刺眼的“五十二”,於是李烏光的臉色一下子就變得“剎白”了。
“這……這如何可能?”
他是不相信蕭讓這轉眼間工夫算出來的答案就是正確答案的,可是現在的事實是,自己兩次的計算都證實了蕭讓答案的正確性,這就讓他相當的難受了!這怎麼可能?自己一個在《孫子演算法》上造詣極高的天才,居然會輸給一個年未滿二十的黃毛小兒?這讓人怎麼接受得了啊?
可接受得了,接受不了,那都與大局無關了,因為事實就是事實,除非他厚顏無恥地否認這“五十二”確實不是正確的答案,否則不管他再講些什麼話都改變不了這個事實了!――而讓他厚顏無恥地否認這個事實,他還真做不到!因為他在“格物學”上的狂熱那是出了名的,而這樣的人,通常都有著一個“通病”,那就是相當的“自負”,而且在“自負”的同時,還相當地在乎自己的名聲!這個“五十二”的正確答案他目前的確是可以否認的,而且他也相信,在場的所有人也會替他說話的,可在這之後呢?事情一旦傳出去了以後,別的“格物學”大師只要一算,孰是孰非,一切就清楚了!到那個時候,他的畢生名聲可就要毀了!這是他無論如何都接受不了的事情,所以,他不能否認!而且他也很有興趣想要知道,蕭讓到底是怎麼辦到在這麼短的時間內算出正確答案的!
*********************************************************
註釋:
1翻譯:一個數被3除餘1,被5除餘2,被7除餘3,這個數最小是幾?《孫子演算法》裡一般問的就是最小數(。。)