徐元根
中國古代算法思想非常接近于現(xiàn)代算法思想,因此具有一般算法思想的各種教育價值.除此之外,基于中國古代算法思想的特征,其對本民族的數(shù)學教育而言,還有著特別的教育價值,即體現(xiàn)數(shù)學課程的民族性、培養(yǎng)學生的應用意識、促進學生對現(xiàn)代算法思想的理解等.
一、體現(xiàn)數(shù)學課程的民族性
英國課程論專家豪森(G?Howson)指出:“一個民族的歷史和文化,會在數(shù)學學習時對本民族的重要性以及數(shù)學課程變革的必要性等問題上形成一種傳統(tǒng)觀念,從而影響學校數(shù)學課程的發(fā)展.[1]”
民族文化的保存與傳遞能夠激發(fā)學生的愛國主義熱情、提高民族的自尊心與自信心.因此,數(shù)學課程必須結合自己的文化傳統(tǒng)實施,數(shù)學課程應該具有本民族文化傳統(tǒng)的特點.
我國數(shù)學課程一貫重視宣傳我國的數(shù)學成就和中國古今數(shù)學家的偉大貢獻.但是這些內容往往被當作具有愛國主義教育意義的歷史知識,而與現(xiàn)代數(shù)學知識的交融并不深入.中國古代的算法思想既是中國傳統(tǒng)數(shù)學的精髓,同時又具有現(xiàn)代算法思想的所有特征,如果能選擇一些典型的中國古代算法內容作為中學數(shù)學的學習內容,必將能使民族文化傳統(tǒng)與現(xiàn)代數(shù)學知識具有更好的交融性,因而能更深入地體現(xiàn)我國數(shù)學課程的民族性.
比如,“中國剩余定理”便是一個很好的素材.
中國古代算書《孫子算經(jīng)》中有一著名的問題“物不知數(shù)”,原題為:今有物,不知其數(shù),三、三數(shù)之,剩二;五、五數(shù)之,剩三;七、七數(shù)之,剩二.問物幾何?
這實際上是求解一次同余式的問題.后來,南宋大數(shù)學家秦九韶在其著作《數(shù)書九章》中,給出了這類問題的一般性解法,即“大衍總數(shù)術”(也稱孫子定理).該方法傳到西方后,被西方數(shù)學家稱為“中國剩余定理”.該定理用現(xiàn)代符號形式敘述就是
N≡r1(玬od玴1)≡r2(玬od玴2)≡…≡r璶(玬od玴璶),其中p1,p2,…,p璶兩兩互質,M=p1p2…p璶,M璱=Mp璱,M璱′M璱=1(玬od玴璱),則N=M′1M1r1+M′2M2r2+…+M′璶M璶r璶(玬od玀).
其中最關鍵的一步是求M′璱,使M′璱M璱=1(玬od玴璱),秦九韶先求出M璱′ 除以p璱的余數(shù)G璱(稱為奇數(shù)),則上面的問題等價于求M璱′,使G璱M璱′≡1(玬od 玴璱),但此處G璱
列出算陣1G璱
0p璱,然后交替進行如下一、二兩步的操作.(1)右下角除以右上角,余數(shù)留在右下角,商與左上角相乘加入左下角;(2)右上角除以右下角,余數(shù)留在右上角,商與左下角相乘加入左上角.這樣重復操作,直至右上角為1時,左上角之數(shù)即為所求的M′璱值之一.(若右下角先出現(xiàn)1,則右上角除以右下角時,規(guī)定余數(shù)為1,商為被除數(shù)減1.)
例 求最小的正整數(shù)N,使N≡2(玬od5)≡3(玬od7)≡5(玬od9).
解:M=315,p1=5,p2=7,p3=9,r1=2,r2=3,r3=5,M1=63,M2=45,M3=35,G1=3,G2=3,G3=8.13
5→13
12→21
12,所以M′1=2;13
7→13
21→51
21,所以,M′2=5;同理求得M′3=8.
N≡2×63×2+5×45×3+8×35×5(玬od315)≡2327(玬od315).
最小的正整數(shù)N=2327-315×7=122.
上述“大衍求一術”的實質與西方的“輾轉相除法”相同,但該方法具有更強的程序性,只要用一個簡單的循環(huán)語句,就很容易在計算機上進行這種計算.程序性和構造性正是中國古代數(shù)學的顯著特征之一,而且解一次同余式組的一般方法“大衍總數(shù)術”為秦九韶所首創(chuàng).將這樣的內容引入中學數(shù)學,能使愛國主義、民族精神的培養(yǎng)與數(shù)學知識、數(shù)學思想方法的學習更好地融合.
二、培養(yǎng)學生的數(shù)學應用意識
強調學生數(shù)學應用意識的培養(yǎng)是現(xiàn)代數(shù)學教育的重要特點.應用是中國古代數(shù)學的特征之一,中國古代數(shù)學中的算法也明顯地來自于現(xiàn)實、用之于現(xiàn)實.所以中國古算素材也是培養(yǎng)學生數(shù)學應用意識的極好素材.
比如中國古代最早的算書《周髀算經(jīng)》實際上是一本天文著作,系統(tǒng)地記載了周秦以來為適應天文計算的需要而逐步積累起來的算法技術.該書最早敘述的勾股定理,便是以解決實際問題的方式提出的.書中寫道,陳子曰:“若求邪至日者,以日下為勾,日高為股,勾、股各自乘,并而開方除之, 得邪至日.”在這里,勾股定理的一般形式實際上是以天文計算中的一種算法出現(xiàn)的.
《九章算術》則更是以應用問題集的形式編排.全書共分9章,敘述了246道應用問題及它們的解法.內容涉及土地面積計算、比例分配、工程計算等許多應用領域.例如,該書“方程”章,第1題便是有關糧食收成的計算問題:
今有上禾三秉,中禾二秉,下禾一秉,實三十九斗;上禾二秉,中禾三秉,下禾一秉,實三十四斗;上禾一秉,中禾二秉,下禾三秉,實二十六斗.問上、中、下禾實一秉各幾何?
題中“禾”為帶桿的黍米,“秉”指捆,“實”是打下來的糧食.設一秉上、中、下等的禾分別能打下糧食x、y、z斗,則問題就相當于解一個三元一次方程組3x+2y+z=39,
2x+3y+z=34,
z+2y+3z=26.
“方程術”的關鍵算法是“遍乘直除”.即先將三個方程的系數(shù)排列成三行(當時的行相當于現(xiàn)在的列),得圖1.
左 中 右
上禾 12 3003
中禾 23 2452
下禾 31 1811
實 26 34 39 39 ?24? 39
圖1圖2
解法步驟為:以右行上禾秉數(shù),即3,遍乘中行各元素,然后逐次減去右行對應各元素,直到中行第一個元素出現(xiàn)0為止,對左行作同樣的變換,得圖2;以中行第一個不等于0的元素,即5,遍乘左行后,逐次減去中行對應的元素直至左行第二個元素為0,并對左行約分,得圖3;然后繼續(xù)變換直至圖4.
003?004
052?040
411?400
11? 24 ?3911 ?17 ?37
圖3圖4
于是得上禾一秉實數(shù)x=374斗,中禾一秉實數(shù)y=174斗,下禾一秉實數(shù)z=114斗.該方法正是西方國家一千多年后才出現(xiàn)的“高斯消去法”.《九章算術》中如此先進的方法依然來自于實際問題解決的需要.
三、促進學生對現(xiàn)代算法思想的理解
中國古代數(shù)學中的“術”符合現(xiàn)代算法的一些最主要的特征,包含著一般算法的操作過程以及順序、選擇、循環(huán)等各種控制結構.因此,讓學生適當?shù)亟佑|并分析一些中國古代的算法,能很好地促進學生對現(xiàn)代算法思想的理解.
一般認為算法含有兩大要素:一是操作,包括算術運算、邏輯運算、關系運算、函數(shù)運算等;二是控制結構,其作用是控制算法各操作的執(zhí)行順序.算法通常所具備的三種控制結構是順序結構、選擇結構和循環(huán)結構.[2].
算法的特征則可歸納為“五性”,即可行性、確定性、有窮性、有效性和普遍性.[3]
中國古代數(shù)學的核心就是各種各樣的“術”.這里的“術”就是一種算法,類似于現(xiàn)在所講的數(shù)學“公式”,但又與公式不完全相同.比如,一元二次方程ax2+bx+c=0(a≠0)的求根公式x=-b±b2-4ac2a,給出的是當b2-4ac≥0時可以將a、b、c的值代入以求得方程的解.這樣的公式只是靜態(tài)地給出了結果,而對于計算過程的每一步具體如何操作,卻并未加以說明.相反,中國古代數(shù)學中的“術”則明確地指出了每一步計算的具體操作方式,是一種動態(tài)的算法描述.我們以《九章算術》中的“約分術”為例來分析其特征.
約分術曰:可半者半之,不可半者,副置分母子之數(shù),以少減多,更相減損,求其等也,以等數(shù)約之.
比如約分98182.先求分子分母的最大公約數(shù).按約分術,“可半者半之”是指如果分子分母都能被2整除,就先取半得4991.“不可半者,副置分母子之數(shù),以少減多”是指如果兩個數(shù)中有一個不能被2整除,則將兩數(shù)分列,大數(shù)減小數(shù)(用較少的數(shù)從較多的數(shù)中減去)得91-49=42.“更相減損,求其等也”是指對減數(shù)和所得的差再大數(shù)減小數(shù),不停地減直至減數(shù)和所得的差相等,即49-42=7、42-7=35、35-7=28、28-7=21、21-7=14、14-7=7得等數(shù)為7,該等數(shù)便是分子分母的最大公約數(shù).然后“以等數(shù) 約之”便得結果49÷791÷7=713.
從以上過程可以明顯看出“術”的操作性特點,且易發(fā)現(xiàn)“術”體現(xiàn)了一般算法的“可行性、確定性、有窮性、有效性和普遍性”等特征.而且“可半”“不可半”的選擇明顯是算法中的“選擇結構”,“更相減損”則是算法中的“循環(huán)結構”,至于“順序結構”則是不言自明的.
所以中國古代數(shù)學的“術”是一種真正意義上的算法,符合現(xiàn)代算法思想的一般特征.讓學生分析這樣的“術”能較好地促進對現(xiàn)代算法思想的理解.
算法的學習需要學生“通過模仿、操作、探索,經(jīng)歷通過設計程序框圖表達解決問題的過程.在具體問題的解決過程中,理解程序框圖的三種基本邏輯結構:順序、條件分支、循環(huán).”[4]中國古代數(shù)學中大量的應用問題,為算法的學習提供了豐富的案例.這些案例及計算過程,深刻地揭示了現(xiàn)代算法思想,是學生模仿、操作、探索的極佳素材.同時這些問題及算法的背景,能夠較好地激發(fā)學生的民族情緒,這一點對學生理解現(xiàn)代算法思想也是有著很好的促進作用的.
參考文獻
[1]G?豪森.數(shù)學課程發(fā)展[M].周克希,趙斌譯 .上海:上海教育出版社,1998.
[2]李亞玲.算法及其學習的意義[J].數(shù)學通報,2004.(2).
[3]費泰生.算法及其特性[J].數(shù)學通訊,2004(7).
[4]中華人民共和國教育部.普通高中數(shù)學課程標準(實驗)[S].北京:人民教育出版社,2003.
[5]李建華.算法及其教育價值[J].數(shù)學教育學報,2004,(3).
[6]李文林.數(shù)學史教程[M].北京:高等教育出版社,2000.
[7]姚佩英.數(shù)學教育中的算法研究.碩士學位論文,2004.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文?!?/p>