• 沒有找到結果。

當大衍求一術結合

N/A
N/A
Protected

Academic year: 2022

Share "當大衍求一術結合"

Copied!
16
0
0

加載中.... (立即查看全文)

全文

(1)

當大衍求一術結合 EXCELMAPLE

李政豐

一 . 楔子

大約在西元前 300 年, 西方偉大的古希臘數學家歐幾里得 (Euclid) 發明了整數的輾轉相 除法, 西元一千七百多年, 瑞士著名的數學家尤拉 (Euler) 發明了二元一次整係數方程式的整 數解 (俗稱尤拉解法)。

在東方中國南宋年間 (約西元一千二百多年) , 誕生了一位大算學家秦九韶, 這位聰明機 智的數學巨星, 出生在四川省, 當時這個天府之國, 時常遭受蒙古軍隊的侵略, 他在兵荒馬亂的 艱苦環境中成長, 精通曆法、 測量、 賦稅、 經濟、 軍事、 營建等經世濟國之道, 他綜合所學, 著作

「數書九章」 十八卷, 在這本偉大著作的 『大衍類』, 用到了比尤拉解法更快速的 「大衍求一術」, 他只利用輾轉相除法的一系列商數, 搭配簡單的演算法則, 就能算得二元一次整係數方程式的 一組整數解 (俗稱格子點座標)。 [1, p.282]

大衍求一術數學思想的起源, 乃是 「孫子算經」 裡的 『中國剩餘定理』, 孫子算經的作者、

年代已不可考, 但可判定是漢朝以後 (約西元 220年以後) 的產物。 [2, p.25、107]

八百多年之後的今天, 由於資訊科技的進步, 在 21 世紀精準計算的年代, 縱然上述方程式 的整數解不難求得, 但是他們創造的演算法則, 仍處處顯露人類科學智慧的才華, 在目前具備功 能強大的優良軟體的輔助下, 更襯托出中國古代數學家思考的條理、 細密、 巧妙與精緻。

本文利用 「大衍求一術」, 以 EXCEL 來求得 ax + by = 1 (a, b ∈ N) 的一組整數解, 再求得 ax + by = c 的參數式解, 進而解答中國剩餘定理的一個例題。 最後以 MAPLE 程式 來求得 a(x)f (x) + b(x)g(x) = 1, (f (x)、g(x) 是兩個互質的實係數多項式) 的一組多項式解 a(x), b(x)。

尤其讓人高興的是, 多項式解的係數, 竟然是與手算的精準數一模一樣, 而不是浮點數, 並 且計算神速, 算式漂亮, 看完這些結果, 真令人慨嘆 MAPLE 的偉大。 古今相互輝映, 道盡科 學文明的歷史足跡。

撰寫本文的目的, 在拋磚引玉, 激起高中數學老師與學生, 對數學演算法則與數學工具軟 體研究的興趣, 摒除繁雜的計算, 讓數學變得更簡單、 生動、 有趣, 也藉此緬懷中國古代數學家 秦九韶, 對宋元黃金時期數學演進的偉大貢獻。

73

(2)

二 . 預備知識

在導入主題之前, 我們先介紹幾個基本而重要的定理, 往後的說明, 都必須以這些定理作 為論證的基礎。

整數除法原理: 對任意正整數 a, b, 必存在唯一的一組整數 q, r, 使得 a = b × q + r, 其 中 0 ≤ r < b。

整數輾轉相除法原理: 設 a, b, q, r 為整數, 且滿足 a = bq + r 則 (a, b) = (b, r)。

多項式除法原理: 對於實係數多項式 f (x) 與 g(x), g(x) 6= 0, 必存在兩多項式 q(x) 與 r(x), 使得 f (x) = q(x) · g(x) + r(x), 其中 r(x) = 0 或 deg r(x) < deg g(x)。

多項式輾轉相除法原理: f (x) 與 g(x) 為兩多項式, deg f (x) ≥ deg g(x), 若 f (x) = q(x) · g(x) + r(x), 則 f (x) 與 g(x) 的最高公因式, 就是 g(x) 與 r(x) 的最高公因式。

另外要先說明的是, MAPLE 有很多類的計算方式, 我們所採用的是符號計算 (symbolic calculation), 它所呈現的數字都是精準數, 就跟我們手算的結果相同, 既自然又真實。

三 . 本文

當兩個自然數 a, b, 且 (a, b) = 1, 我們要找方程式, ax + by = 1 的整數解時, 秦九韶的 大衍求一術, 對解這個問題有兩個重要的貢獻:

(1) 數書九章所說的 「以少除多, 遞互除之」, 就是利用歐幾里得的輾轉相除法, 求得這個 gcd

= 1

(2) 在大衍求一術中, 他只利用輾轉相除法的一系列商數, 搭配簡單的演算法則, 就能算得 ax +by = 1 的一組整數解。

甲 . 舉例說明大衍求一術列表的演算法則

例1. 求 35x + 8y = 1 的一組整數解。

解答: 由 (35, 8) = 1, 用橫式輾轉相除法求得一系列的商數, 再把商數用 qi 替換 35 = 8 × 4 + 3

8 = 3 × 2 + 2 3 = 2 × 1 + 1 2 = 1 × 2 + 0

q1 = 4, q2 = 2, q3 = 1, q4 = 2 代入左式

=⇒

35 = 8 × q1+ 3 8 = 3 × q2+ 2 3 = 2 × q3+ 1 2 = 1 × q4+ 0

(A式)

由右邊 (A 式) 倒數第二列的餘數 1開始往上逆推

(3)

1 = 3 − 2q3

= 3 − (8 − 3q2)q3

= (−1)1(q3)(8) + (−1)2(q3q2+ 1)(3)

= (−1)1(q3)(8) + (−1)2(q3q2+ 1)(35 − 8q1)

= (−1)2(q3q2+ 1)(35) + (−1)3[q1(q3q2+ 1) + q3](8) (B式) 將 (B 式) 最後一列 [ ] 中的式子, 按相乘的項數由多到少, 再按足碼由大而小的順序, 整理成 巢狀結構

[q1(q3q2+ 1) + q3] = [q3q2q1+ q3+ q1] = [q3(q2q1+ 1) + q1] 則所得到 35x + 8y = 1 的一組整數解是

x0= (−1)2(q3q2+ 1)

y0= (−1)3[q3(q2q1 + 1) + q1]

如果不理會解答的正負符號, 我們可將求解的過程, 利用簡單記憶的方式, 列出一個巢狀結構的 運算表格

表一

q1 q2 q3

1 0 1 q2 q3q2+ 1 0 1 q1 q2q1+ 1 q3(q2q1+ 1) + q1 它的演算法則是

1. 第 2 列第 1、 2、 3 行的位置分別填 1、 0、 1。

2. 第 3 列第 1、 2 行的位置分別填 0、 1。

3. 第 2 列第 4 行起往右一整列的每一格演算法則都是: 上方×左方+左前方。

4. 第 3 列第 3 行起往右一整列的每一格演算法則都是: 最上方×左方+左前方。

5. 解答正負符號的決定規則: 如表一所示; 倒數第二列的最後一行是 q3q2+ 1, 此行最上方是 q3, 足碼為 3, 則 x0 = (−1)3−1(q3q2+ 1), 最後一列的最後一行是 q3(q2q1 + 1) + q1, 則 y0 = (−1)3[q3(q2q1+ 1) + q1], x0 與 y0 恰好差了一個負號。

如果把 q1 = 4, q2 = 2, q3 = 1 代入所作成的表格是 表二

4 (q1) 2 (q2) 1 (q3)

1 0 1 2 3

0 1 4 9 13

(4)

(B 式) 最後一列, 或表一最後一行, 所代表的一組整數解是 x0= (−1)2(q3q2+ 1) = +3

y0= (−1)3[q3(q2q1+ 1) + 1] = −13 亦即表二最後一行所代表的一組整數解是

35(+3) + 8(−13) = 1

如果我們再把 q4 = 2 也放進去, 則表格最後一行的最後兩數, 是方程式的係數 35 與 8:

表三

4(q1) 2(q2) 1(q3) 2(q4)

1 0 1 2 3 8

0 1 4 9 13 35

它代表的是 35(−8) + 8(+35) = 0。

為什麼會有這個結果? 其實是在 (A 式) 最後一行的餘數 0, 逆推回去的結果, 我們將它證明如 下: 由 (A 式) 最後一列最後一行餘數 0 開始往上逆推

0 = 2 − 1q4

= 2 − (3 − 2q3)q4

= (−1)1(q4)(3) + (−1)2(q4q3+ 1)(2)

= (−1)1(q4)(3) + (−1)2(q4q3+ 1)(8 − 3q2) (C式)

= (−1)2(q4q3+ 1)(8) + (−1)3[q2(q4q3+ 1) + q4](3)

= (−1)2(q4q3+ 1)(8) + (−1)3[q2(q4q3+ 1) + q4](35 − 8q1)

= (−1)3[q2(q4q3+ 1) + q4](35) + (−1)4{q1[q2(q4q3+ 1) + q4] + (q4q3+ 1)}(8)

將 (C 式) 最後一列 [ ] 與 { } 中的式子, 按相乘的項數由多到少, 再按足碼由大而小的順序, 整理成巢狀結構

[q2(q4q3+ 1) + q4]

= [q4q3q2 + q4+ q2]

= [q4(q3q2+ 1) + q2]

(5)

{q1[q2(q4q3+ 1) + q4] + (q4q3+ 1)}

= {q4q3q2q1+ q4q1 + q2q1+ (q4q3+ 1)}

= {q4q3q2q1+ q4q3 + q4q1+ q2q1+ 1}

= {q4(q3q2q1+ q3+ q1) + (q2q1+ 1)}

= {q4[q3(q2q1+ 1) + q1] + (q2q1+ 1)}

則所得到的這一組整數解是

x0= (−1)3[q4(q3q2 + 1) + q2]

y0= (−1)4{q4[q3(q2q1+ 1) + q1] + (q2q1+ 1)}

即 (C 式) 最後一列所代表的是 35x0+ 8y0 = 0。

若暫時不理會解答的正負符號 (因為我們常見的二元一次不定方程式, ax + by = 1 係數 a、 b 可正可負), 我們利用上面的演算法則, 列出一個巢狀結構的運算表格

表四

q1 q2 q3 q4

1 0 1 q2 q3q2+ 1 q4(q3q2+ 1) + q2

0 1 q1 q2q1+ 1 q3(q2q1+ 1) + q1 q4[q3(q2q1+ 1) + q1] + (q2q1+ 1) 比對表三與表四

q4(q3q2+ 1) + q2 = 8

q4[q3(q2q1+ 1) + q1] + (q2q1+ 1) = 35 證畢。

例2. 求 5723x + 4171y = 97 的一組整數解。

解答: 為了確定它是否有整數解, 先檢查 (5723, 4171)| 97, 是否成立?

第一步: 先用直式輾轉相除法算得 (5723, 4171) = 97。

第二步: 把方程式兩邊同除 97 得到一個同義方程式 59x + 43y = 1。

第三步: 用橫式輾轉相除法求得一系列的商數

59 = 43 × 1 + 16 43 = 16 × 2 + 11 16 = 11 × 1 + 5 11 = 5 × 2 + 1

5 = 1 × 5 + 0

(6)

把 q1 = 1, q2 = 2, q3 = 1, q4 = 2, q5 = 5 代入大衍求一術的運算表格, 得到 表五

16(r1) 11(r2) 5(r3) 1(r4) 0(r5) 1(q1) 2(q2) 1(q3) 2(q4) 5(q5)

59 的係數 1 0 1 2 3 8 43

43 的係數 0 1 1 3 4 11 59

(1) 觀察倒數第二行的最後兩數, 它代表的是 (59)(−8) + (43)(11) = 1 取正負號的規則是: 8 在 q4 的這一行, 它的足碼 (index) 是 4, 故取 x0 = (−1)3(8), y0 = (−1)4(11)。 如果忘 了取正負號的規則, 要湊出滿足常數是 1 的一組解也很容易。

(2) 觀察最後一行的最後兩數, 它在 q5, 足碼是 5 的這一行, 它代表的是 (59)[(−1)4(43)] + (43)[(−1)5(59)] = 0。

(3) 再觀察倒數一、 二行的最後兩數, 它的交叉相乘積的差是 1 或 −1。 它代表的是 (59)(8) − (43)(11) = −1。

(4) 觀察倒數第三行的最後兩數, 它代表 (59)[(−1)2(3)] + (43)[(−1)3(4)] = 5, 5 是倒數第三 行最上方的餘數 r3。

乙 . 將大衍求一術的演算法則, 寫成 EXCEL 程式如下:

圖一

結合了大衍求一術與 EXCEL, 使得求二元一次不定方程式的整數解變得更簡單, 也引起學生

(7)

操作學習的一點樂趣。

[附註] 非常感謝數播審稿師長的提示, 在清華大學數學系全任重老師的網站 http://poncelet.math.nthu.edu.tw/chuan/123/test/rnplussn.htm 用 lotus 123 設計了大衍求一數的簡單表格, 具有與圖一相同的功能。

例3. 求 10x + 14y = 20 的所有整數解。

解答:

第一步: 先算得 (10, 14) = 2。

第二步: 把方程式兩邊同除 2 得到一個同義方程式 5x + 7y = 10, 如果常數項不能被最大公 因數 2 整除, 則方程式沒有整數解; 因為如果 x, y 是整數, 則 10x + 14y 也是整數, 而且一定是 (10,14) 的倍數。

第三步: 先求解 5x0+ 7y0= 1, 用橫式輾轉相除法求得一系列的商數;

5 = 7 × 0 + 5 7 = 5 × 1 + 2 5 = 2 × 2 + 1 2 = 1 × 2 + 0 表六

0(q1) 1(q2) 2(q3) 2(q4)

1 0 1 1 3 7

0 1 0 1 2 5

觀察倒數第二行, 我們得到的方程組解是

5(+3) + 7(−2) = 1. (D式) 即 x0 = +3, y0 = −2。

第四步: 將 (D 式) 兩邊各乘上同義方程式的常數 10, 5(+3×10)+7(−2×10) = 1×10, 我 們得到同義方程式 5x + 7y = 10 的一組解; (x, y) = (30, −20) 直線 5x + 7y = 10 的斜率是 −57 , 如果由整數解 (30, −20) 的格子點開始, 沿著直線出發, x 座標前進 7 格, y 座標就下降 5 格。 因為 7 與 5 互質, x 座標前進不到 7 格, y 座標下降的格子 數就不是整數, 因此所有整數解是:

x= 30 + 7t

y= −20 − 5t 其中 t 是整數。

(8)

丙 . 秦九韶如何用大衍求一術來解決中國餘數定理問題?

例4. 有一個自然數, 以三除之餘二, 以五除之餘三, 以七除之餘二, 此自然數最小是多少?

解答:

(1) 某數以三除之餘二, 以五除之餘三, 故可假設

某數 = 3x + 2 = 5y + 3. (E式) 由 3x + 2 = 5y + 3, 移項得 3x + 5(−y) = 1, 由大衍求一術的計算

3 = 5 × 0 + 3 5 = 3 × 1 + 2 3 = 2 × 1 + 1 2 = 1 × 2 + 0

表七

0(q1) 1(q2) 1(q3) 2(q4)

1 0 1 1 2 5

0 1 0 1 1 3

觀察最後二行的最後二列

3(2) + 5(−1) = 1

與 3x + 5(−y) = 1 比較

得到一組整數解 (x, y) = (2, 1)。 由 3x + 5(−y) = 1 的斜率是 35, 且 3, 5 互質。 得到直 線上格子點的參數式

x= 2 + 5t

y= 1 + 3t 其中 t 是整數, 把 x = 2 + 5t, 或 y = 1 + 3t 代入 (E 式) 得某數= 8 + 15t。

(2) 我們可把原命題改寫成 『某數以十五除之餘八, 以七除之餘二』, 故可假設

某數 = 15x + 8 = 7y + 2. (F式) 移項得

15x + 7(−y) = −6 (G式)

我們先計算

15x0+ 7(−y0) = 1 (H式)

(9)

由直式輾轉相除法

15 = 7 × 2 + 1 7 = 1 × 7 + 0

表八

2(q1) 7(q2)

1 0 1 7

0 1 2 15

觀察最後二行的最後二列得到 15(1) + 7(−2) = 1, 將上式乘上 (G 式) 的常數項 −6 得到 15(−6) + 7(12) = −6, 與 15x + 7(−y) = −6 相比較得到一組整數解,

x= −6 y = −12 , 由 直線 15x + 7(−y) = −6 的斜率是 157, 得到所有格子點座標

x= −6 + 7t

y= −12 + 15t 其中 t 是 整數, 把參數式中的 x = −6+7t, 或 y = −12+15t 代入 (F 式) 得到某數= −82+105t, 將 t 取 1, 即得到最小的某數 23。

上面解法, 是為不熟悉大衍求一術的高中同學所設計的求解過程, 其實有些方程式的一組 解答, 用目測就能看出來, 那就省略了列表計算的麻煩。

丁 . 用 MAPLE 解大衍求一術

當 f (x)、 g(x) 是兩個互質的實係數多項式, 要如何找到一組多項式解 a(x), b(x), 滿足 方程式 a(x)f (x) + b(x)g(x) = 1。 我們在唸代數的時候, 相信都有這個經驗, 要求得上述方程 式的一組多項式解, 且係數是精準數 (不是浮點數), 使用輾轉相除法逆推, 用手算一題幾乎要浪 費一小時的時間。 學了程式語言之後, 雖然寫程式, 也能很快的求得一組多項式解, 但是得到的 係數卻是浮點數, 那種感覺, 脫離了數學的精確與完美, 總是若有所失。 直到用了 MAPLE 程 式, 這種數學的感覺被找回來了。 底下是大衍求一術的 MAPLE 程式。

大衍求一術的新工具

: MAPLE

f(x), g(x) 是互質的實係數多項式, 求兩多項式 a(x), b(x) 滿足 a(x)f (x)+b(x)g(x) = 1

——————————————————————————

(10)

先把所有數據歸零

>restart;

>i:=1:k:=1:

——————————————————————————

請您在 f (x) : 之後輸入被除式 f (x), 在 g(x) : 之後輸入除式 g(x)

>f (x) :=3∗x4+x3+1;

f(x) := 3x4+ x3+ 1

>g (x) :=2∗x3+2∗x2+x-1;

g(x) := 2x3+ 2x2+ x − 1

——————————————————————————

如果 f (x) 與 g(x) 不互質, 我們要除掉它們的最高公因式

>f (i) (x) :=f (x) /gcd (f (x) ,g (x) ) ; f(1)(x) := 3x4+ x3+ 1

>g (i) (x) :=g (x) /gcd (f (x) ,g (x) ) ; g(1)(x) := 2x3+ 2x2 + x − 1

——————————————————————————

先找商式跟餘式

>q (i) (x) :=quo (f (i) (x) ,g (i) (x) ,x) ; q(1)(x) := 32x− 1

>r (i) (x) :=rem (f (i) (x) ,g (i) (x) ,x) ; r(1)(x) := 52x+ 12x2

——————————————————————————

輾轉相除, 求得一系列的商式跟餘式

>for i from 1 by 1 while degree (r (i) (x) ) >0 do f (i+1) (x) :=g (i) (x) ;

g (i+1) (x) :=r (i) (x) ;

q (i+1) (x) :=quo (f (i+1) (x) ,g (i+1) (x) ,x) ; r (i+1) (x) :=rem (f (i+1) (x) ,g (i+1) (x) ,x) ; end do;

f(2)(x) := 2x3+ 2x2+ x − 1 g(2)(x) := 52x+12x2

q(2)(x) := 4x − 16 r(2)(x) := −1 + 41x f(3)(x) := 52x+ 12x2

(11)

g(3)(x) := −1 + 41x q(3)(x) := 821x+1681103 r(3)(x) := 1681103

——————————————————————————

取得商式的數目

>k:=i;

k := 3

——————————————————————————

用大衍求一術的演算法則求 a(x) 與 b(x)

>b (1) (x) :=simplify (q (1) (x) ) ;

b (2) (x) :=simplify (q (2) (x) ∗b (1) (x) +1) ; for i from 3 by 1 to k do

b (i) (x) :=simplify (q (i) (x) ∗b (i-1) (x) +b (i-2) (x) ) , end do;

b(1)(x) := 32x− 1

b(2)(x) := 6x2− 28x + 17

b(3)(x) := 413x3+168144 x2 −168114 x+ 168170

>a (1) (x) :=1;

a (2) (x) :=simplify (q (2) (x) ∗a (1) (x) +0) ; for i from 3 by 1 to k do

a (i) (x) :=simplify (q (i) (x) ∗a (i-1) (x) +a (i-2) (x) ) , end do;

a(1)(x) := 1 a(2)(x) := 4x − 16

a(3)(x) := 412x2 +168184 x+ 168133

——————————————————————————

把 a(x) 與 b(x) 簡化再降羃排列

>a (x) :=sort (simplify (a (k) (x) /r (k) (x) ∗ (-1) (k-1) ) ) , a(x) := 10382x2 +10384x+10333

>b (x) :=sort (simplify (b (k) (x) /r (k) (x) ∗ (-1) (k) ) ) ; b(x) := −123103x310344x2+ 10314x−10370

——————————————————————————

列印出 a(x)f (x) + b(x)g(x) = 1 的各項 a(x), f (x), b(x), g(x), 1

>print (a (x) ,f (1) (x) ,b (x) ,g (1) (x) ,1) ;

82

103x2+10384x+10333, 3x4+x3+1, −123103x310344x2+10314x− 10370, 2x3+2x2+x − 1, 1

(12)

[附註] 非常感謝數播審稿師長的提示, MAPLE 中設有指令 gcdex, 可以直接計算上面式子的 a(x)、 b(x)。

MAPLE−→工具列的 HELP−→TOPIC SEARCH−→點選 gcdex−→APPLY Calling Sequence

gcdex (A,B,x,’s’,’t’) gcdex (A,B,C,x,’s’,’t’)

> gcdex (f (1) (x) ,g (1) (x) ,1,x,’s’,’t’) ;

> s,t;

82

103x2+ 84

103x+ 33

103, −123

103x3− 44

103x2+ 14

103x− 70 103

戊 . 大衍求一術的一般化證明

對所給兩個自然數 a, b 由輾轉相除法

a= bq1+ r1 (1)

b= r1q2 + r2 (2)

r1= r2q3 + r3 (3) r2= r3q4 + r4 (4)

...

如果令 r−1 = a, r0 = b 則有

ri−2 = ri−1qi + ri 的關係存在, 其中 i ∈ N。

由 (1)

r1 = a + (−q1)b (A)

由 (2)

r2= b − r1q2

= b + (−q2)[a + (−q1)b]

= (−q2)a + [(−1)2q2q1+ 1]b (B)

(13)

由 (3)

r3= r1− r2q3

= (a + (−q1)b) + (−1)q3[(−q2)a + ((−1)2q1q2+ 1)b]

= ((−1)2q2q3+ 1)a + ((−1)3q1q2q3 + (−1)q3− q1)b

= [(−1)2q3q2+ 1]a + [(−1)3q3(q2q1+ 1) − q1]b (C) 由 (4)

r4= r2+ (−1)q4r3

= (−q2)a + ((−1)2q2q1+1)b + (−1)q4{[(−1)2q3q2+1]a + [(−1)3q3(q2q1+1) − q1]b}

= [−q2− q4 + (−1)3q4q3q2]a + [(−1)2q2q1+ 1 + (−1)4q4q3(q2q1+ 1) + (−1)2q4q1]b

= (−1)[q4((−1)2q3q2+ 1) + q2]a + {q4[q3(q2q1+ 1) + q1] + (−1)2q2q1 + 1}b (D) 如果我們將它列成一個表格如下:

表九

大 衍 求 一 術

序 −1 0 1 2 3 4

每 衍

餘 數 值

r−1(a) r0(b) r1 r2 r3 r4

執 行 值

商 數 值

q1 q2 q3 q4

每 衍

a 係 數

1 0 (α1) 1

2)

−q2

3) (−1)2q3q2+1

4)

−q4((−1)2q3q2+1)

−q2

饋 值

b 係 數

0 1 (β1)

−q1

2) (−1)2q2q1+1

3)

(−q3)[(−1)2q2q1+1]

−q1

4)

q4[q3(q2q1+1)+q1] +(−1)2q2q1 + 1

(14)

表九中 a, b 係數計算的演算法則是:

1. 衍序 −1, 0, 1 所對應的 a 係數分別放 1, 0, 1。

2. 衍序 −1, 0 所對應的 b 係數分別放 0, 1。

3. 其餘 a 係數右方每一空格的演算法則都是: (−1)×上方×左方+左前方。

4. 其餘 b 係數右方每一空格的演算法則都是: (−1)×上二格×左方+左前方。

如果令衍序 i 所對應的 a 係數為 αi, b 係數為 βi, 則由上面 (A)、 (B)、 (C)、 (D) 式可得 ri = αia+ βib。

底下我們想將表九 a 係數、 b 係數的計算作一般化:

由 ri−2= ri−1· qi+ ri, 則當 i ≥ 1 時

ri= ri−2+ (−1)qiri−1

= (αi−2a+ βi−2b) − qii−1a+ βi−1b)

= (−qiαi−1+ αi−2)a + (−qiβi−1+ βi−2)b 亦即 ri = αia+ βib。

將一般化的結果列成一個表格是:

表十

大 衍 求 一 術

序 · · · i − 2 i − 1 i · · · n− 1 n 每

衍 餘 數 值

· · · ri−2 ri−1 ri · · · rn−1 rn

執 行 值

商 數 值

· · · qi−2 qi−1 qi · · · qn−1 qn

每 衍

a 係 數

· · · αi−2 αi−1

i)

−qiαi−1+αi−2 · · · (αn−1)

−qn−1αn−2+αn−3

n)

−qnαn−1+αn−2

饋 值

b 係 數

· · · βi−2 βi−1

(βi)

−qiβi−1+βi−2 · · · (βn−1)

−qn−1βn−2+βn−3

(βn)

−qnβn−1+βn−2

(15)

由輾轉相除法原理:

a, b∈ N 若 a= bq + r 則 (a, b) = (b, r)。

如果我們把 a 當被除數, b 當除數, 由整數的除法定理, b > r ≥ 0, 當我們繼續作有限次輾轉 相除;

a= bq1 + r1 b= r1q2+ r2 r1= r2q3+ r3 r2= r3q4+ r4

...

ri−2= ri−1qi+ ri ...

rn−2= rn−1qn+ rn

則有 (a, b) = (b, r1) = (r1, r2) = (r2, r3) · · · 且存在某個自然數 n, 使得 r1 > r2 > r3 > r4 >· · · > rn−1> rn= 0

此時 (a, b) = rn−1.

四 . 結語

當我們坐在飛機上悠閒的往下看, 似乎很難體會到我們的祖先, 遠度重洋、 千里跋涉, 篳路 藍縷、 以啟山林的那種艱苦心境。

但是, 當我們今天使用 EXCEL 與 MAPLE 去解決大衍求一術的問題時, 我們卻能發自 內心的感受到中國古代數學家的的睿智與光芒, 大概是亙古不變的演算法則, 在提攜我們堅實 的邁步向前。 這真是數學與其他科技一個很大的差別。

本文是我們網路數學素材課程的一篇報告, 在撰寫過程中, 交通大學應數系黃大原老師, 給 我很多寶貴的意見與指導, 尤其是最後完整的證明與表格, 黃老師將它呈現得更加完美, 使我們 的學習, 融合著快樂與充實, 教學與互動, 既感性又溫馨, 在此特地敬表感謝之意。

(16)

參考文獻

(1) 黃武雄、 杜時然 (民 69)。 中西數學簡史。 台北: 人間文化事業股份有限公司。

(2) 李人言 (民 79)。 中國算學史 (七版)。 台北: 台灣商務印書館。

(3) 高級中學數學編輯小組李恭晴等 (民 74)。 基礎數學統合 (上冊)。 台北: 國立編譯館。

(4) 洪維恩 (民 90)。 數學魔法師。 台北: 碁峰資訊股份有限公司。

(5) 莫宗堅。 韓信點兵。 科學月刊第一卷第一期。

(6) 清華大學數學系全任重老師的網站:

http://poncelet.math.nthu.edu.tw/chuan/123/test/rnplussn.htm

—本文作者任教於竹南高中

參考文獻

相關文件

大家都知道中研院數學所編了一個 「數 學傳播季刊」, 這個季刊當初是一些熱心的先 進教授、 中學老師們建立起來的。 多年來我 們 一直很珍重這個園地, 努力要把它維持下

Menshov 是我的指導教授。 Menshov 是一個非凡的人, 在實分析與三角級數 研究上傑出的數學家—如同我在波蘭的老師 Zahorski 那般。 在跟隨 Menshov 學習一年 半之後, 我和 Menshov 及

我曾經去過大陸的雲南、昆明、大里、麗江、黃山、九寨溝,和日本大阪、東京,這些 都是我寶貴的旅遊經驗,有汗有淚,尤其是去黃山和九寨溝時,各個狀況都皆浮現出來,行 李箱不見、高山症、氧氣不足…

學習動機與態度 完全 符合 大部分 符合 大部分 不符合 不符合 完全. 1.我覺得上課是一件有趣的事

國立交通大學應數系 infomath 的一群 高中數學教師, 從八十七年九月以來, 一直為 虛 擬高中數學館的網路數學課程, 用盡心思, 期望 能編寫出一套視覺化、 互動式, 且能涵蓋

資訊科技融入數學教學, 對老師的幫助、 影響相當大, 也是數學老師將來必須面對而不可 迴 避的競爭, 由於 Excel 的普遍, 使得函數圖形的呈現很方便, 在課堂上我們使用較多。 但是若 非顏貽隆老師的

師一趟,後來他也想把我帶去台南,一開始我還覺得是不是又是哪個江湖術士在 騙人,但我哥說在 程老師 程老師

我會記得你們是 -- 我在嘉大附 小教導資素課第一屆的學生。.