三國那個時代,有名東山隱者 1 結廬於深山,逃避戰亂、專心著述。
一日,雨過天晴,陽光普照,東山隱者捧著剛寫成的《孫子算經》欣喜地坐在青山下,凝神遐想。
布衣荊釵的東山隱姜提著一籃蕨薇,涉溪而來。
「夫子大功告成了罷?!」隱姜問道。
「大功告成了。但願這本《孫子算經》能流傳後世。自從《周髀算經》、《九章算術》問世以後,這幾百年民間傳誦發揚的算術道理,從來沒有人整理編輯。希望這本書能在這方面盡些力氣。隱姜,你說我為什麼偽托孫子?」隱者問道。
「喲!幾十年來,難道我還不明白你的心思嗎?自從東漢以後,重名不重實,又加上戰亂,只有清談玄理、陰謀詭詐的人才算高明。何況你雖遊遍天下,可是一不交結巨公顯宦,又不到處吹噓隱者之名,一輩子也成不了名動天下的「大隱(?)」所以,如果你不偽托孫子,那麼這本書一定湮沒失傳,幾百年來多少人的心血也會成空。此其一。」
「其二呢?」隱者點頭微笑問道。
「那更容易。還不是介子推老夫子的那句話「貪天之功,以為己力」,孔丘老夫子的那句「述而不作」。必須積累無數人力與 時間去摸索與探測,才能逐漸了解及發現真理。總括大成者,怎 能攘為己有,作此盜名欺世之事。」
「真吾妻也!真吾妻也!」隱者哈哈大笑。「數百年來流傳的韓信點兵問題,在這本書裡,也有一個較好的解法了。」
「那太好了,就請你指點吧。」隱姜說。
A.「原題是『三數剩二,五數剩三,七數剩二』。
高中代數解法 :
X = 3 * k + 2
X = 5 * l + 3
X = 7 * m + 2
(X - 2) = 21 * k m ==> X = 23, 23 = 3 * 7 + 2 同時 23 = 7 * 3 + 2 , km=1
X - 3 = 5 * l ==> X = 23 - 3 = 20 = 5 * 4
(X-2)(X -3) = 105 * n ==> 目視 21 * 20 = 420 = 105 * 4
X² - 5X + 6 = 105 * n ==> X² - 5X - 414 = 0 ; ( X - 23) (X + 18) = 0, X = 23
現在我們先求『三數剩一,五數不剩,七數不剩』的解答。我們可以從三十五的倍數中,找『三數剩一』的數目,譬如說,七十就是一個解答 。再求『三數不剩,五數剩一,七數不剩』的解答。在二十一的倍數中,二十一本身就是一解。另外求『三數不剩,五數不剩,七數剩一』的解答。在十五的倍數中,十五本身適合『七數剩一』。
70 = 5 * 7 * 2 = 3 * 23 + 1
21 =3 * 7 = 5 * 4 + 1
15 =3 * 5 = 7 * 2 + 1
70 * 2 = 3 * 23 * 2 + 2 = 5 * 7 * 4
21 * 3 = 5 * 4 * 3 + 3 = 3 * 7 * 3
15 * 2 = 7 * 2 * 2 + 2 = 3 * 5 * 2
七十,二十一,十五這三個數是解答這個問題的關鍵。這類數目可以定名為『用數』。把這三個用數分別乘剩數,二,三,二,然後相加。七十乘二得一百四十,二十一乘三得六十三,十五乘二得三十。一百四十,六十三,三十,三數相加得二百三十三。這就是原題的一個解答。另外用三乘五再乘七得一百零五,二百三十三加減一百零五的倍數就可以得到所有解答了。所以算出二十三,一百二十八等等都是解答。」
「這樣說來,終於求得『韓信點兵問題』的公式了。嗯,韓信手下可能祇有二十三名兵卒,竟然驚走漢高祖劉邦,可見算術的神奇莫測!」隱姜讚許道。
隱者談鋒很健,又繼續發揮道:
「天象周期循環不息,比如說,月的盈虧現象,五星(當時知道的辰星、太白、熒惑、鎮星、歲星,也就是現在水星、金星、火星、土星、木星)運行現象,日夜循環現象,四季輪替現象等等。凡是周期現象都孕含剩數的道理。普通計時用的月份、日期、時辰都是運用剩數觀念。剩數觀念源遠流長,以後一定蔚為大宗。可是那要等到天下太平民物鼎盛的時代了。到那時算術才能蓬勃發展,剩數的精深觀念,才能得到闡揚啊!那才真正夠得上『神鬼不測之機』。」
隱者與隱姜坐在青山下,出神遙想千年萬載後的中國。
故事講完了,現在讓我們一起研究一下孫子定理──或者中國剩餘定理。
「韓信點兵」的重要數學問題。當洋人了解中國人在十幾世紀前的貢獻,一致歡喜讚嘆,而把這個問題的解法命名為「中國剩餘定理」(Chinese Remainder Theorem) 以紀念中國人的偉大貢獻。現代中國人追思《孫子算經》的無名作者,而把這個定理命名為「孫子定理」。孫子定理──或者中國剩餘定理──成為近代代數,數論以及代數幾何中最重要的定理之一,它的光芒四射,照耀了無數角落。
數學的發展和數字的寫法以及公式的表達法有密切的關係。中國古代盛行代數,是受了中國優良的記數法的影響。到了近代,由於人類發明 =,-,+,×,,以及用抽象符號 x,y,a,b 代表數字,使得代數成為易懂的數學。對於「剩餘」這個概念,我們也要引進一種符號來幫助了解,記憶。
首先「三數剩二」是什麼意思呢?那不過說某一個數 x 被 3 除剩餘 2;換句話,x-2 被3整除。我們用下式表示「三數剩二」
定義1: 已知 a-b 被 m 整除,我們說「a、b 對模 m 同餘」。用下式(同餘式)表示。
-
反之,
表示「a,b 對模 m 不同餘」;換句話 a-b 不是 m 的倍數。
- 例1:
- 例2: 表示 a 是一個奇數。
- 例3: 表示 a 是一個偶數。
- 例4: 「物不知其數,三三數之剩二,五五數之剩三,七七數之剩二」可用同餘式表示如下。
「韓信點兵問題」就是求一組同餘式的公解。「」與等式「=」有同樣的運算法則,那就是說:
- 定理1: 已知 , ,那麼, , , , , 。
-
證明: 我們先證 ,讀者可以仿照我們的證法,去證明其餘公式。
-
根據「」的定義,我們知道 a-b = sm,c-d = tm 所以
(a+c) - (b+d) = (a-b)+(c-d) = sm+tm = (s+t)m
那就是說, 證完。
在推演孫子定理(中國剩餘定理)的過程中,我們須要一個應用兩數互質(兩數的最大公約數是1)的定理,那就是:
- 定理2: 已知 m,n 適合下式, am+bn=1,那麼 m,n 互質,反過來說,如果 m,n 互質,我們可以找到 a,b,使得 am+bn=1
-
證明: 因為 m,n 的最大公約數可以整除 am+bn,而 am+bn=1,所以 m,n 的最大公約數是1,換句話, m,n 互質。反過來說,如果己知 m,n 互質,讀者可以應用輾轉相除法,求得 a,b 使得 am+bn=1,證完。
應用定理2,我們可以解答漂母數布匹的問題了,那就是下面的定理3:
- 定理3: 己知 m,n 互質,那麼下列一組同餘式:
-
有公解。
證明: 根據定理2,我們可以找到 a,b 使得 am+bn=1,所以 bn=1-am,那麼 , ,換句話,bn 是我們所求的一組公解,證完。
-
系1: 己知 m1 與 m2,m1 與 m3,… m1 與 mt 都互質,那麼下列一組同餘式
-
有公解。
- 證明: 根據已知條件,我們推論 m1 與 互質。在應用定理3,我們知道
- 有公解。
- 顯然上面那組同餘式的公解就是
-
的公解,證完。
- 定理4: 己知 m1,m2,…,mt 兩兩互質,並且求出 a1 是 , ,…, 的一個公解,a2 是 , , ,…, 的一個公解,以此類推,求出 a3,…,at。那 就是下列一組同餘式
的一個公解。
證明: 我們先證明 ,讀者可以仿照我們的證法,去證明其餘同餘式。
-
根據己知條件,我們知道 , , …, ,應用定理1,我們得出 ,並且已知 ,所以應用定理1,我們得出 ,再應用一次定理1,我們證明
證完。
上面的定理4事實上就是孫子算經裡的解法。 a1, a2,…,at 也就是孫子算經裡面提到的「用數」。定理4再加上下面的定理5就合成了數論中的孫子定理。
- 定理5: 己知 m1,m2,…,mt 兩兩互質。並且求出 a,b 是下列一組同餘式
的兩個公解。那麼 a-b 一定是 的倍數。反過來說, 也是那一組同餘式的公解。
證明: 因為 , ,應用定理1,我們得到 ,換句話,a-b 被 m1 整除。同樣道理 m2,…,mt 都可以整除 a-b。根據已知條件,m1,m2,…,mt 兩兩互質,所以 a-b 一定被 整除,那就是說,a-b 是 的倍數。反過來說,應用定理1, 自然也是一個公解。證完。
上面所談的都是數論的內容。如果我們把上面的定義,定理,系以及證明中的整數 m,n,a,b,m1,n1,…,等等都換成一元多項式 m(x), n(x), a(x), b(x), m1(x), n1(x), … 等等。我們就得到方程式論中的孫子定理了。
例如定理3可以改寫成:
- 定理3: 已知 m(x), n(x) 互質,那麼下列一組同餘式,
-
有公解。
在許多抽象數學的領域中,也有孫子定理。不過,因為牽涉的入門知識太多,這兒也就一言表過不提了。
關於孫子定理,現代數學家已有廣泛透徹的研究。讀者如果有興趣,可以參看一點數論及近代代數的書籍。
這篇淺文的主要目的,也就是引起讀者對數學的興趣而已。
留言列表