科學月刊【數‧生活與學習】專欄 9902
韓信點兵與傳統的數學教育典範
單維彰‧99 年 1 月 10 日
我要講一個可能大家都知道的故事。重點不是這個故事,而是我在後面要表達的 意見。這個故事只需要簡單的數學,卻又不會太簡單(才能讓讀者有比較深刻的 感受),恰可以為我的意見提供一個範例。
大家可能都知道所謂的韓信點兵問題:命不知為數多少的士兵,三人一伍排 好,看看剩下幾個人;馬上又叫他們五人一伍排好,看看剩下幾人;再命令他們 七人一伍排好,看看剩下幾人?(好像在玩某種「大風吹」遊戲。)然後,有經 驗的將領或師爺(通常是後者),稍微沈吟,就能「很神奇」地說出士兵的總數。
這樣顯一顯本領,讓眾人震懾佩服,也是領導統御的手段啊。
以上作法並不能決定唯一的答案。所以將領或師爺還需要老到的經驗,估計 總數大約多少,再配合以下算法,做一個調整。此處,先以《孫子算經》裡面的 例題作為韓信點兵問題的典型:
今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,
問物幾何?(《孫子算經》卷下第 26 題)
順便一提,此「孫子」並非《孫子兵法》的那位孫子。《孫子算經》可能比《九 章算經》稍晚,至少也是在漢朝了,而《孫子兵法》是東周時期的典籍。用今天 的術語,並且更精確地命題,這一題的意思是:
若 n 是一個正整數,已知n ,3 q3 2 n ,5 q5 3 n ,7 q7 2 問滿足此條件的最小正整數是多少?
其中 就是 n 除以 3 得到商數 和餘數 2 的意思,而那又等於是說
。 3 3
n q 3 q3 2
2 q3
n
《孫子算經》先演示一個解法。他說,「三三數之剩二」就放 140,「五五數 之剩三」就放 63,「七七數之剩二」就放 30;把它們加起來,得到 233。再減去 210 就是答案,亦即 23。
真是神奇的孫子傑克。為什麼呢?先別急著問。接著他寫了這種題型的一般 解法:
凡三三數之剩一,則置七十,五五數之剩一,則置二十一,七七數之 剩一,則置十五。一百六以上,以一百五減之,即得。
用今天的符號和術語來說,就是
只要是三三數之剩 ,五五數之剩 ,七七數之剩 ,則 的餘數就是最小正整數解。
r3
7 1
r
r5 r7
3 5
(r 70 r 21 5) 105
為了要牢牢背住公式裡的四個數,自古傳下一首詩歌:
三人同行七十稀( 乘以 70) r3 五樹梅花廿一枝( 乘以 21) r5
七子團圓正半月( 乘以 15) r7 除百零五便得知(除以 105)
各位讀者是否覺得以上「教學」結構非常眼熟?從一個特殊的例題開始,以 一個特殊的公式解決它,給一套背誦公式的口訣,也許再做兩道練習題。所以,
只要是這一型的題目,都可以「速解」。這不就是常見的所謂參考書或者補習班 教法嗎?不但頗受學生歡迎,部分的老師也自翎這是「有效」的教法。
我並不要依慣例批評這些參考書或老師們。我想要表達的意見是,其實,這 種教法,正是中國固有數學教學的典範!多少的老師、作者和學生,不知不覺 地繼承了中國的這項傳統而不自覺?文化入人之深,正是表現在這種瞬忽微渺的 不察之處。現在「主流的」數學教法,也就是注重前提,考究原因,按邏輯嚴格 演繹的教法,是西方承自希臘數學的典範;它是外來的,並不是我們的傳統文化 中所固有的。
也許四百年前翻譯《幾何原本》的徐光啟,是第一個認識西方數學典範的中 國人,他也是第一個指出其優越性的中國人。從他開始,歷經了三百年,才讓中 國的知識份子普遍認識到,中國固有的數學教學典範有些缺憾,而引進西方的數 學知識以及教學典範。但是,這個數學教育的「革命」,至今只有一百年左右,
而隱藏在大眾民間、有兩千年歷史的傳統,仍然無聲無形地操弄著我們的思考習 慣。要以一百年的耕耘,翻犁兩千年的土壤,到底有多難?
真的很難。這是我們全體數學教育工作者,需要透徹地認識,並且時時警惕 的啊。
意見說完了,讓我們探討原因吧。一個關鍵的知識是,如果 ,
,則 「基本上」就是
1 1
m k q r1
2
2 2
m k q r r1r2 (m1m2)k
1 2
( ) k r r
的餘數:如果 則 它就是餘數;如果 ,減去 k 就是餘數了。理由是,因為 ,
,所以 ,如果
1 2
r r k
1 1
m q k r
1 2
r r m m
k
1 2
1 2
2 2 2
m q k r (q1q2) r1 沒有超過 k,它就r 是 的餘數;如果超過了,那也必定不會超過 2k,因為
所以
1 2
(m m )k
1 2 1
m m (q q2 1) k (r1 r2 k) r1 就是餘數。 r2 k
如果有兩個數,叫它們 和 。如果 被 3 整除(也就是 餘 0 的意 思), 餘 2,則 就是餘 2。那麼,如果 被 5 整除,而 餘 3,那不就是 (
m3
3 5
5
m5
3
m3 m33
5 3
m (m m )
3 5)
m5 m35 m m 餘 3 嗎?所以,找到具有上述性質的 和 ,則它們 的和,就是一個「三三數之剩二,五五數之剩三」的數。從 3 的倍數 3、6、9、
裡找一個除以 5 餘 3 的數,例如 18,就可以當作 ;從 5 的倍數 5、10、15、
裡找一個除以 3 餘 2 的數,5 就可以,當作 。檢查看看, m m 就是 一個除以 3 餘 2、除以 5 餘 3 的數。
3 m5
3 5
m
m3
m5 23
但是 23 並非唯一那樣的數,例如 38 也是。沿用前面的「關鍵知識」,只要 是 15 的倍數,它被 3 整除也被 5 整除,則
m15
3 5 1
m m m5 15 8
除以 3 還是餘 2、除以 5 還是餘 3。注意15也是 15 的倍數,而23
23 15
是「三三數之剩二,五五數之 剩三」的最小正整數;換個說法,8 其實就是 的餘數。對所有的非負整數 k,8 1 5k都是解。
現在我們需要第二個關鍵知識。如果m1 ,k q1 1 m2 ,則k q2 r 除以 k 也是餘 r。這是因為
m1m2 m1 q1 k 1,m2 q2 ,所以k r
,也就是說
1 2
m m (q q k1 2 rq1q2) k r (m1m2) 餘 r。 k
這就厲害了。只要在 3 的倍數中找到除以 5 餘 1 的最小正整數M ,在 5 的3 倍數中找到除以 3 餘 1 的最小正整數M ,則不論題目怎麼出,只要是「三三數5 之剩 ,五五數之剩 」的形式,全都可以用公式r3 r5 (r M3 5r M ) (3 5)5 3 的餘數得 到最小正整數解。而M 固定是 6,3 M 固定是 10。不妨拿前面的題目試招:5
餘 8,就是最小正整數解。
(2 10 3 6) 15 38 1 5
把上述想法往上推一層樓。如果M3,5是 3 和 5 的公倍數中除以 7 餘 1 的最小
數;M5,7是 5 和 7 的公倍數中除以 3 餘 1 的最小數;M3,7是 3 和 7 的公倍數中除 以 5 餘 1 的最小數。則凡是「三三數之剩 ,五五數之剩 ,七七數之剩 」的 題型,全部可以用公式
r3 r5 r7
3 5,7 5 3,7 7 3,5
(r M r M r M ) (3 5 7) 的餘數
得到最小正整數解。而M5,7 70,M3,7 21,M3,5 15,3 5 7 105。它們就 是《孫子算經》指出的那四個神奇的數。
回到韓信點兵。因為23 都是士兵的可能數目,韓信必須目測一個概 數,再配合公式說出答案。目測 105 的倍數實在不容易,例如八百多人和九百多 人並不容易區分。想必聰明的韓信,早就推廣這個算法,造出「五五數之,八八 數之,九九數之」的公式。可惜這是韓氏秘技,傳子不傳女…。現在,既然我們 明白了原理,是否就可以『為往聖繼絕學』了呢?
105k