中国古代算法思想的教育价值
徐元根
中国古代算法思想非常接近于现代算法思想,因此具有一般算法思想的各种教育价值.除此之外,基于中国古代算法思想的特征,其对本民族的数学教育而言,还有着特别的教育价值,即体现数学课程的民族性、培养学生的应用意识、促进学生对现代算法思想的理解等.
一、体现数学课程的民族性
英国课程论专家豪森(G?Howson)指出:“一个民族的历史和文化,会在数学学习时对本民族的重要性以及数学课程变革的必要性等问题上形成一种传统观念,从而影响学校数学课程的发展.[1]”
民族文化的保存与传递能够激发学生的爱国主义热情、提高民族的自尊心与自信心.因此,数学课程必须结合自己的文化传统实施,数学课程应该具有本民族文化传统的特点.
我国数学课程一贯重视宣传我国的数学成就和中国古今数学家的伟大贡献.但是这些内容往往被当作具有爱国主义教育意义的历史知识,而与现代数学知识的交融并不深入.中国古代的算法思想既是中国传统数学的精髓,同时又具有现代算法思想的所有特征,如果能选择一些典型的中国古代算法内容作为中学数学的学习内容,必将能使民族文化传统与现代数学知识具有更好的交融性,因而能更深入地体现我国数学课程的民族性.
比如,“中国剩余定理”便是一个很好的素材.
中国古代算书《孙子算经》中有一著名的问题“物不知数”,原题为:今有物,不知其数,三、三数之,剩二;五、五数之,剩三;七、七数之,剩二.问物几何?
这实际上是求解一次同余式的问题.后来,南宋大数学家秦九韶在其著作《数书九章》中,给出了这类问题的一般性解法,即“大衍总数术”(也称孙子定理).该方法传到西方后,被西方数学家称为“中国剩余定理”.该定理用现代符号形式叙述就是
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璱的余数G璱(称为奇数),则上面的问题等价于求M璱′,使G璱M璱′≡1(玬od 玴璱),但此处G璱列出算阵1G璱
0p璱,然后交替进行如下一、二两步的操作.(1)右下角除以右上角,余数留在右下角,商与左上角相乘加入左下角;(2)右上角除以右下角,余数留在右上角,商与左下角相乘加入左上角.这样重复操作,直至右上角为1时,左上角之数即为所求的M′璱值之一.(若右下角先出现1,则右上角除以右下角时,规定余数为1,商为被除数减1.)
例 求最小的正整数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).
最小的正整数N=2327-315×7=122.
上述“大衍求一术”的实质与西方的“辗转相除法”相同,但该方法具有更强的程序性,只要用一个简单的循环语句,就很容易在计算机上进行这种计算.程序性和构造性正是中国古代数学的显著特征之一,而且解一次同余式组的一般方法“大衍总数术”为秦九韶所首创.将这样的内容引入中学数学,能使爱国主义、民族精神的培养与数学知识、数学思想方法的学习更好地融合.
二、培养学生的数学应用意识
强调学生数学应用意识的培养是现代数学教育的重要特点.应用是中国古代数学的特征之一,中国古代数学中的算法也明显地来自于现实、用之于现实.所以中国古算素材也是培养学生数学应用意识的极好素材.
比如中国古代最早的算书《周髀算经》实际上是一本天文著作,系统地记载了周秦以来为适应天文计算的需要而逐步积累起来的算法技术.该书最早叙述的勾股定理,便是以解决实际问题的方式提出的.书中写道,陈子曰:“若求邪至日者,以日下为勾,日高为股,勾、股各自乘,并而开方除之, 得邪至日.”在这里,勾股定理的一般形式实际上是以天文计算中的一种算法出现的.
《九章算术》则更是以应用问题集的形式编排.全书共分9章,叙述了246道应用问题及它们的解法.内容涉及土地面积计算、比例分配、工程计算等许多应用领域.例如,该书“方程”章,第1题便是有关粮食收成的计算问题:
今有上禾三秉,中禾二秉,下禾一秉,实三十九斗;上禾二秉,中禾三秉,下禾一秉,实三十四斗;上禾一秉,中禾二秉,下禾三秉,实二十六斗.问上、中、下禾实一秉各几何?
题中“禾”为带杆的黍米,“秉”指捆,“实”是打下来的粮食.设一秉上、中、下等的禾分别能打下粮食x、y、z斗,则问题就相当于解一个三元一次方程组3x+2y+z=39,
2x+3y+z=34,
z+2y+3z=26.
“方程术”的关键算法是“遍乘直除”.即先将三个方程的系数排列成三行(当时的行相当于现在的列),得图1.
左 中 右
上禾 12 3003
中禾 23 2452
下禾 31 1811
实 26 34 39 39 ?24? 39
图1图2
解法步骤为:以右行上禾秉数,即3,遍乘中行各元素,然后逐次减去右行对应各元素,直到中行第一个元素出现0为止,对左行作同样的变换,得图2;以中行第一个不等于0的元素,即5,遍乘左行后,逐次减去中行对应的元素直至左行第二个元素为0,并对左行约分,得图3;然后继续变换直至图4.
003?004
052?040
411?400
11? 24 ?3911 ?17 ?37
图3图4
于是得上禾一秉实数x=374斗,中禾一秉实数y=174斗,下禾一秉实数z=114斗.该方法正是西方国家一千多年后才出现的“高斯消去法”.《九章算术》中如此先进的方法依然来自于实际问题解决的需要.
三、促进学生对现代算法思想的理解
中国古代数学中的“术”符合现代算法的一些最主要的特征,包含着一般算法的操作过程以及顺序、选择、循环等各种控制结构.因此,让学生适当地接触并分析一些中国古代的算法,能很好地促进学生对现代算法思想的理解.
一般认为算法含有两大要素:一是操作,包括算术运算、逻辑运算、关系运算、函数运算等;二是控制结构,其作用是控制算法各操作的执行顺序.算法通常所具备的三种控制结构是顺序结构、选择结构和循环结构.[2].
算法的特征则可归纳为“五性”,即可行性、确定性、有穷性、有效性和普遍性.[3]
中国古代数学的核心就是各种各样的“术”.这里的“术”就是一种算法,类似于现在所讲的数学“公式”,但又与公式不完全相同.比如,一元二次方程ax2+bx+c=0(a≠0)的求根公式x=-b±b2-4ac2a,给出的是当b2-4ac≥0时可以将a、b、c的值代入以求得方程的解.这样的公式只是静态地给出了结果,而对于计算过程的每一步具体如何操作,却并未加以说明.相反,中国古代数学中的“术”则明确地指出了每一步计算的具体操作方式,是一种动态的算法描述.我们以《九章算术》中的“约分术”为例来分析其特征.
约分术曰:可半者半之,不可半者,副置分母子之数,以少减多,更相减损,求其等也,以等数约之.
比如约分98182.先求分子分母的最大公约数.按约分术,“可半者半之”是指如果分子分母都能被2整除,就先取半得4991.“不可半者,副置分母子之数,以少减多”是指如果两个数中有一个不能被2整除,则将两数分列,大数减小数(用较少的数从较多的数中减去)得91-49=42.“更相减损,求其等也”是指对减数和所得的差再大数减小数,不停地减直至减数和所得的差相等,即49-42=7、42-7=35、35-7=28、28-7=21、21-7=14、14-7=7得等数为7,该等数便是分子分母的最大公约数.然后“以等数 约之”便得结果49÷791÷7=713.
从以上过程可以明显看出“术”的操作性特点,且易发现“术”体现了一般算法的“可行性、确定性、有穷性、有效性和普遍性”等特征.而且“可半”“不可半”的选择明显是算法中的“选择结构”,“更相减损”则是算法中的“循环结构”,至于“顺序结构”则是不言自明的.
所以中国古代数学的“术”是一种真正意义上的算法,符合现代算法思想的一般特征.让学生分析这样的“术”能较好地促进对现代算法思想的理解.
算法的学习需要学生“通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程.在具体问题的解决过程中,理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.”[4]中国古代数学中大量的应用问题,为算法的学习提供了丰富的案例.这些案例及计算过程,深刻地揭示了现代算法思想,是学生模仿、操作、探索的极佳素材.同时这些问题及算法的背景,能够较好地激发学生的民族情绪,这一点对学生理解现代算法思想也是有着很好的促进作用的.
参考文献
[1]G?豪森.数学课程发展[M].周克希,赵斌译 .上海:上海教育出版社,1998.
[2]李亚玲.算法及其学习的意义[J].数学通报,2004.(2).
[3]费泰生.算法及其特性[J].数学通讯,2004(7).
[4]中华人民共和国教育部.普通高中数学课程标准(实验)[S].北京:人民教育出版社,2003.
[5]李建华.算法及其教育价值[J].数学教育学报,2004,(3).
[6]李文林.数学史教程[M].北京:高等教育出版社,2000.
[7]姚佩英.数学教育中的算法研究.硕士学位论文,2004.
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
中国古代算法思想非常接近于现代算法思想,因此具有一般算法思想的各种教育价值.除此之外,基于中国古代算法思想的特征,其对本民族的数学教育而言,还有着特别的教育价值,即体现数学课程的民族性、培养学生的应用意识、促进学生对现代算法思想的理解等.
一、体现数学课程的民族性
英国课程论专家豪森(G?Howson)指出:“一个民族的历史和文化,会在数学学习时对本民族的重要性以及数学课程变革的必要性等问题上形成一种传统观念,从而影响学校数学课程的发展.[1]”
民族文化的保存与传递能够激发学生的爱国主义热情、提高民族的自尊心与自信心.因此,数学课程必须结合自己的文化传统实施,数学课程应该具有本民族文化传统的特点.
我国数学课程一贯重视宣传我国的数学成就和中国古今数学家的伟大贡献.但是这些内容往往被当作具有爱国主义教育意义的历史知识,而与现代数学知识的交融并不深入.中国古代的算法思想既是中国传统数学的精髓,同时又具有现代算法思想的所有特征,如果能选择一些典型的中国古代算法内容作为中学数学的学习内容,必将能使民族文化传统与现代数学知识具有更好的交融性,因而能更深入地体现我国数学课程的民族性.
比如,“中国剩余定理”便是一个很好的素材.
中国古代算书《孙子算经》中有一著名的问题“物不知数”,原题为:今有物,不知其数,三、三数之,剩二;五、五数之,剩三;七、七数之,剩二.问物几何?
这实际上是求解一次同余式的问题.后来,南宋大数学家秦九韶在其著作《数书九章》中,给出了这类问题的一般性解法,即“大衍总数术”(也称孙子定理).该方法传到西方后,被西方数学家称为“中国剩余定理”.该定理用现代符号形式叙述就是
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璱的余数G璱(称为奇数),则上面的问题等价于求M璱′,使G璱M璱′≡1(玬od 玴璱),但此处G璱列出算阵1G璱
0p璱,然后交替进行如下一、二两步的操作.(1)右下角除以右上角,余数留在右下角,商与左上角相乘加入左下角;(2)右上角除以右下角,余数留在右上角,商与左下角相乘加入左上角.这样重复操作,直至右上角为1时,左上角之数即为所求的M′璱值之一.(若右下角先出现1,则右上角除以右下角时,规定余数为1,商为被除数减1.)
例 求最小的正整数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).
最小的正整数N=2327-315×7=122.
上述“大衍求一术”的实质与西方的“辗转相除法”相同,但该方法具有更强的程序性,只要用一个简单的循环语句,就很容易在计算机上进行这种计算.程序性和构造性正是中国古代数学的显著特征之一,而且解一次同余式组的一般方法“大衍总数术”为秦九韶所首创.将这样的内容引入中学数学,能使爱国主义、民族精神的培养与数学知识、数学思想方法的学习更好地融合.
二、培养学生的数学应用意识
强调学生数学应用意识的培养是现代数学教育的重要特点.应用是中国古代数学的特征之一,中国古代数学中的算法也明显地来自于现实、用之于现实.所以中国古算素材也是培养学生数学应用意识的极好素材.
比如中国古代最早的算书《周髀算经》实际上是一本天文著作,系统地记载了周秦以来为适应天文计算的需要而逐步积累起来的算法技术.该书最早叙述的勾股定理,便是以解决实际问题的方式提出的.书中写道,陈子曰:“若求邪至日者,以日下为勾,日高为股,勾、股各自乘,并而开方除之, 得邪至日.”在这里,勾股定理的一般形式实际上是以天文计算中的一种算法出现的.
《九章算术》则更是以应用问题集的形式编排.全书共分9章,叙述了246道应用问题及它们的解法.内容涉及土地面积计算、比例分配、工程计算等许多应用领域.例如,该书“方程”章,第1题便是有关粮食收成的计算问题:
今有上禾三秉,中禾二秉,下禾一秉,实三十九斗;上禾二秉,中禾三秉,下禾一秉,实三十四斗;上禾一秉,中禾二秉,下禾三秉,实二十六斗.问上、中、下禾实一秉各几何?
题中“禾”为带杆的黍米,“秉”指捆,“实”是打下来的粮食.设一秉上、中、下等的禾分别能打下粮食x、y、z斗,则问题就相当于解一个三元一次方程组3x+2y+z=39,
2x+3y+z=34,
z+2y+3z=26.
“方程术”的关键算法是“遍乘直除”.即先将三个方程的系数排列成三行(当时的行相当于现在的列),得图1.
左 中 右
上禾 12 3003
中禾 23 2452
下禾 31 1811
实 26 34 39 39 ?24? 39
图1图2
解法步骤为:以右行上禾秉数,即3,遍乘中行各元素,然后逐次减去右行对应各元素,直到中行第一个元素出现0为止,对左行作同样的变换,得图2;以中行第一个不等于0的元素,即5,遍乘左行后,逐次减去中行对应的元素直至左行第二个元素为0,并对左行约分,得图3;然后继续变换直至图4.
003?004
052?040
411?400
11? 24 ?3911 ?17 ?37
图3图4
于是得上禾一秉实数x=374斗,中禾一秉实数y=174斗,下禾一秉实数z=114斗.该方法正是西方国家一千多年后才出现的“高斯消去法”.《九章算术》中如此先进的方法依然来自于实际问题解决的需要.
三、促进学生对现代算法思想的理解
中国古代数学中的“术”符合现代算法的一些最主要的特征,包含着一般算法的操作过程以及顺序、选择、循环等各种控制结构.因此,让学生适当地接触并分析一些中国古代的算法,能很好地促进学生对现代算法思想的理解.
一般认为算法含有两大要素:一是操作,包括算术运算、逻辑运算、关系运算、函数运算等;二是控制结构,其作用是控制算法各操作的执行顺序.算法通常所具备的三种控制结构是顺序结构、选择结构和循环结构.[2].
算法的特征则可归纳为“五性”,即可行性、确定性、有穷性、有效性和普遍性.[3]
中国古代数学的核心就是各种各样的“术”.这里的“术”就是一种算法,类似于现在所讲的数学“公式”,但又与公式不完全相同.比如,一元二次方程ax2+bx+c=0(a≠0)的求根公式x=-b±b2-4ac2a,给出的是当b2-4ac≥0时可以将a、b、c的值代入以求得方程的解.这样的公式只是静态地给出了结果,而对于计算过程的每一步具体如何操作,却并未加以说明.相反,中国古代数学中的“术”则明确地指出了每一步计算的具体操作方式,是一种动态的算法描述.我们以《九章算术》中的“约分术”为例来分析其特征.
约分术曰:可半者半之,不可半者,副置分母子之数,以少减多,更相减损,求其等也,以等数约之.
比如约分98182.先求分子分母的最大公约数.按约分术,“可半者半之”是指如果分子分母都能被2整除,就先取半得4991.“不可半者,副置分母子之数,以少减多”是指如果两个数中有一个不能被2整除,则将两数分列,大数减小数(用较少的数从较多的数中减去)得91-49=42.“更相减损,求其等也”是指对减数和所得的差再大数减小数,不停地减直至减数和所得的差相等,即49-42=7、42-7=35、35-7=28、28-7=21、21-7=14、14-7=7得等数为7,该等数便是分子分母的最大公约数.然后“以等数 约之”便得结果49÷791÷7=713.
从以上过程可以明显看出“术”的操作性特点,且易发现“术”体现了一般算法的“可行性、确定性、有穷性、有效性和普遍性”等特征.而且“可半”“不可半”的选择明显是算法中的“选择结构”,“更相减损”则是算法中的“循环结构”,至于“顺序结构”则是不言自明的.
所以中国古代数学的“术”是一种真正意义上的算法,符合现代算法思想的一般特征.让学生分析这样的“术”能较好地促进对现代算法思想的理解.
算法的学习需要学生“通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程.在具体问题的解决过程中,理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.”[4]中国古代数学中大量的应用问题,为算法的学习提供了丰富的案例.这些案例及计算过程,深刻地揭示了现代算法思想,是学生模仿、操作、探索的极佳素材.同时这些问题及算法的背景,能够较好地激发学生的民族情绪,这一点对学生理解现代算法思想也是有着很好的促进作用的.
参考文献
[1]G?豪森.数学课程发展[M].周克希,赵斌译 .上海:上海教育出版社,1998.
[2]李亚玲.算法及其学习的意义[J].数学通报,2004.(2).
[3]费泰生.算法及其特性[J].数学通讯,2004(7).
[4]中华人民共和国教育部.普通高中数学课程标准(实验)[S].北京:人民教育出版社,2003.
[5]李建华.算法及其教育价值[J].数学教育学报,2004,(3).
[6]李文林.数学史教程[M].北京:高等教育出版社,2000.
[7]姚佩英.数学教育中的算法研究.硕士学位论文,2004.
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”