从算法教学管窥中国古代数学史俞 昕( 浙江湖州市第二中学 313000) 关于算法的涵义, 人们有着不同的界定. 普通高中数学课程标准( 实验) 在学生算法目标达成度上,重在算法思想的理解与应用,界定现代算法的意义就是解决某一类问题的办法. 确切地说,就是对于某一类特定的问题,算法给出了解决问题的一系列(有穷) 操作, 即每一操作都有它的确定性的意义( 使计算机能够按照它的指令工作) ,并在有限时间( 有穷步骤)内计算出结果.普通高中数学课程标准( 实验) 对! 算法部分∀进行说明时,突出强调! 需要特别指出的是, 中国古代数学中蕴涵了丰富的算法思想∀. 吴文俊先生曾经说过! 我们崇拜中国传统数学,决非泥古迷古、 为古而古. 复古是没有出路的. 我们的目的不仅是要显示中国古算的真实面貌, 也不仅是为了破除对西算的盲从,端正对中算的认识,我们主要的也是真正的目的, 是在于古为今用. ∀算法教学中蕴涵着丰富的数学史教育价值, 作为新时代的高中数学教师是有必要了解这一点的.1 中国古代数学的特点古代数学思想分为两大体系, 一个是以欧几里得的几何原本 为代表的西方数学思想体系,这个体系以公理化的思想、 抽象化的方法、 封闭的演绎体系为特色. 另一个则是以我国的九章算术 为代表的东方数学思想体系,这个体系以算法化的思想、 构造性的方法、 开放的归纳体系为特色.我国传统数学在从问题出发,以解决问题为主旨的发展过程中, 建立了以构造性与机械化为其特色的算法体系, 这与西方数学以欧几里得几何原本 为代表的所谓公理化演绎体系正好遥遥相对.中国古代数学中的! 术∀相当于现代数学术语中的! 公式∀,两者虽有相同点(都可以用来解决一类有关问题) , 其差异也非常之大. 主要表现在,! 公式∀只提供了几个有关的量之间的关系, 指明通过哪些运算可由已知量求出未知量,但并没有列出具体的运算程序,一般地,认为这种程序是已知的了. 但! 术∀则由怎样运算的详细程序构成的,可以说它是为完成公式所指出的各种运算的具体程序,即把! 公式∀展开为使用某种计算工具的具体操作步骤. 从这点看, ! 术∀正是现代意义上的算法, 是用一套! 程序语言∀所描写的程序化算法,可以照搬到现代计算机上去. 我国古代数学包括了今天初等数学中的算术、 代数、 集合和三角等多方面的内容.由于受实用价值观的影响, 中国传统数学的研究遵循着一种算法化思想,这种思想从九章算术 开始一直是中国古代数学著作大都沿袭的模式:实际问题# # # 归类# # # 筹式模型化# # # 程序化算法即将社会生产生活中的问题,先编成应用问题,按问题性质分类, 然后概括地近似地表述出一种数学模型, 借助于算筹, 得到这一类问题的一般解法. 把算法综合起来, 得到一般原理, 分别隶属于各章,人们按照书中的方法、 原理和实例来解决各种实际问题. 可以说,中国传统数学以确定算法为基本内容,又以创造和改进算法为其发展的方向.受九章算术 的影响,在之后的几个世纪,一些数学家的著作都以算法为主要特点,包括王孝通的辑古算经 、 贾宪的黄帝九章算法细草 、 刘益的议古根源 、 秦九韶的数书九章 、 李冶的测圆海镜 和益古演段 、 杨辉的详解九章算法 、 日用算法 和杨辉算法 , 这些著作中包括了增乘开方术、 贾宪三角、 高次方程数值解法、 内插法、 一次同余式组解法等一些著名的算法,进一步发展了中国古代数学算法化的特点,使得算法的特点得到了进一步的强化和发展.1 1 中国古代数学的算法化思想算法化的思想是中国古代数学的重要特点,并贯穿于中国古算整个发展过程之中.即使是与24 数学通报 2010 年 第49 卷 第2 期图形有关的几何问题也不例外,中算家们将几何方法与算法有机地结合起来,实现了几何问题的算法化.这样,从问题出发建立程序化的算法一直是古代中国数学研究的传统,也是中算家们努力的方向.这种算法化的思想着重构造实践,更强调! 经验∀、 ! 发现∀和构造性思维方式下从无到有的发明,对今天的算法教学与研究具有重要的启迪作用.中国古代数学算法化的思想具体表现如下:第一步,把实际中提出的各种问题转化为数学模型;第二步,把各种数学模型转化为代数方程; 第三步,把代数方程转化为一种程序化的算法; 第四步,设计( 并逐步改进)、 归纳、 推导(寓推理于算法之中)出各种算法; 第五步,通过计算回溯逐步达到解决原来的问题.1 2 中国古代数学的构造性方法所谓构造性方法是解决数学问题的一种方法,是创造性思维方式直接作用的结果.按照现代直觉主义者,特别是构造主义者的观点,对于一个数学对象,只有当它可以通过有限次的操作而获得,并且在每步操作之后都能有效地确定下一步所需要采取的操作, 才能说它是存在的.按照这种思维方式,可以使概念和方法按固定的方式在有限步骤内进行定义或得以实施,或给出一个行之有效的过程使之在有限步骤内将结果确定地构造出来.换言之,就是能用有限的手段刻画数学对象并针对问题提出具体的解法.中国古代数学的算法化思想与构造性的方法紧密相连.由于古代中算家所关心的大多是较为实用的问题,他们在解决问题时首先考虑是如何得到可以直接应用的、 可以方便操作的解,而不会满足于仅仅知道解在理论上的存在性. 因为这种纯粹的理论解对于受实用价值观影响的中算家来说是没有多大意义的.从而我们推断,构造性方法的产生是算法化思想直接作用的结果.从我国许多经典算书中可以发现, 数学构造性方法在算法中有许多精彩的体现. 例如就! 方程∀的筹算图阵及其程序设计而言,首先, ! 群物总杂,各列有数,总言其实∀,这是对每行中未知数的系数和常数项的安排,其次, ! 令每行为率,二物者再程,三物者三程,皆如物数程之∀,这是对诸行关系的安排, ! 并列为行∀又说明了什么叫! 方程∀. 这为中国古代数学的构造性方法提供了一个具有说服力的样板.由于构造性的方法特别强调运算的可操作程度, 所以构造出的! 术∀可以通过一系列有限的运算求出解来, 具有一般性.时至今日我国古算家所设计的许多算法几乎都可以整套照搬到现代的电子计算机上实现.这也是我国古算在算法上长期居于领先地位的一个重要原因.2 中国古代数学中的优秀算法案例2. 1 中国古代的代数学代数学是中国传统数学中一个值得骄傲和自豪的领域.中小学数学中的算术、 代数内容, 从记数以至解联立的线性方程组, 实质上都是中国古代数学家的发明创造.结合新课程的算法教学,笔者选取我国古代著名算法进行分析.2. 1. 1 求最大公约数的算法(更相减损术)中国古代数学中,未曾出现素数、 因数分解等概念,但是发明了求两整数的最大公约数的方法# # # 更相减损术: ! 可半者半之,不可半者,副置分母子之数, 以少减多, 更相减损,求其等也.以等数约之. ∀事实上此术中包含了三个步骤:第一步, ! 可半者半之∀, 即进行观察, 若分子、分母都是偶数,可先取其半;第二步, ! 不可半者, 副置分母、 子之数, 以少减多,更相减损,求其等也∀;第三步, ! 以等数约之∀.其中第二步! 以少减多, 更相减损∀是关键,又是典型的机械化程序.在中国古代数学中, 将最大公约数称作! 等∀.由于! 更相减损∀过程终可以在有限步骤内实现, 所以它是一种构造性的方法.若用现代语言翻译即为:第一步,任意给定两个正整数, 判断它们是否都是偶数. 若是,用2 约减,若不是, 执行第二步. 第二步, 以较大的数减去较小的数, 接着把所得的差与较小的数比较, 并以大数减小数.继续这个操作, 直到所得的数相等为止, 则这个数( 等数)或这个数与约简的数的乘积就是所求的最大公约数.下面运用 QBA SIC 语言来编写相应的程序( 见程序1) .25 2010 年 第49 卷 第2 期 数学通报程序 1INPUT! m, n= ∀ ; m, nIF m< n T HEN a= m m= n n= aEND IFk= 0WHILE m MOD 2= 0 AND n MOD2= 0 m= m/ 2 n= n/ 2 k= k+ 1WENDd= m- nWHILE d< > n IF d> n TH EN m= d ELSE m= n n= d END IF d = m- nWENDd= 2 ∃ k * dPRINT dEND程序 2INPUT A, BWHILE A < > B IF A> B T H EN A = A- B ELSE B= B - A END IFWENDPRINT BEND程序 3INPUT ! M, N (M> N )∀ ; M, NDOR= M- N IF R> N TH EN M= R ELSE M= N N= R END IFLOOP UNTIL R= 0PRINT MEND程序 4INPUT ! n= ∀ ; nINPUT! an= ∀; aINPUT! x= ∀ ; xv= ai= n- 1WH ILE i> = 0 PRINT ! i= ∀; i INPUT! ai= ∀ ; a v= v * x+ a i= i- 1WENDPRINT vEND程序 2和 3 是两个简化的参考程序, 是从不同的角度来实现更相减损的过程.! 更相减损术∀提供了一种求两数最大公约数的算法, 这是九章算术 的一个重要成就, 与古希腊欧几里得的几何原本 中用来求最大公约数的! 欧几里得算法∀, 即辗转相除法, 有异曲同工之妙. 欧几里得在几何原本 中针对这个问题引入了许多概念, 给出了冗长的逻辑证明. 尽管如此,他还是暗用了一条未加说明的公理, 即如果 a, b都被c 整除, 则a- mb也能被c 整除.中国古算采用的! 更相减损∀方法,实际上也暗用了一条未加说明的公理, 即若 a- b 可以被c 整除,则 a, b 都能被c 整除. 正如刘徽在九章算术注 中! 其所以相减者, 皆等数之重叠∀. 从形式上看! 更相减损术∀比! 辗转相除法∀更复杂, 循环次数要比辗转相除法多, 但对于计算机来说, 作乘除运算要比作加减运算慢得多, 因此更相减损术在计算机上更为好用.26 数学通报 2010 年 第49 卷 第2 期2. 1. 2 求一元 n 次多项式值的算法(秦九韶算法)秦九韶,南宋著名数学家,其学术思想充分体现在数书九章 这一光辉名著中,该著作不仅继承了九章算术 的传统模式, 对中算的固有特点发扬光大,而且完全符合宋元社会的历史背景, 是中世纪世界数学史上的光辉篇章. 书中记载了! 正负开方术∀、 ! 大衍求一术∀等著名算法.在数书九章 卷五第 17 个问题以! 尖田求积∀为例的算法程序中,可以看出秦九韶对于求一元n 次多项式f ( x ) = anxn+ an- 1 xn- 1+ %+ a1x+ a0 的值所提出的算法.秦九韶算法的特点在于通过反复计算n 个一次多项式,逐步得到原多项式的值. 在欧洲, 英国数学家霍纳( Horner ) 在1819 年才创造了类似的方法, 比秦九韶晚了572年.秦九韶算法把求f ( x ) = anxn+ an- 1 xn- 1+ %+ a1x + a0 的 值 转 化 为 求 递 推 公 式v0= anvk= vk- 1x+ an- k k= 1, 2, %, n中 v n 的值. 通过这种转化, 把运算的次数由至多( 1+ n) n2次乘法运算和n 次加法运算,减少为至多 n 次乘法运算和n 次加法运算,大大提高了运算效率.这种算法的QBASIC 语言程序如程序 4 所示.算法步骤是如下的五步: 第一步, 输入多项式次数 n、 最高次项的系数an 和x 的值;第二步,将 v 的值初始化为a v ,将i 的值初始化为n- 1; 第三步, 输入 i次项的系数ai ;第四步, v= v x+ ai , i= i- 1; 第五步,判断i 是否大于或等于 0, 若是, 则返回第三步,否则输出多项式的值v .2. 2 中国古代的几何学中国古代的几何学从田亩丈量等生产生活中的一些实际问题中产生, 并为生产生活服务. 基于传统实用价值观的影响, 中国古代的几何学并没有发展成为像欧氏几何那样严密的公理化演绎体系,所以中国古代几何学在整个数学史上的地位并不突出,但在许多几何问题的处理上也突出了算法化这一特色. 下面以! 割圆术∀为例作简要分析.中国古代数学家刘徽创立! 割圆术∀来求圆的面积及其相关问题. 刘徽! 瓤而裁之∀,即对与圆周合体的正多边形进行无穷小分割,分成无穷多个以正多边形每边为底、 圆心为顶点的小等腰三角形, 这无穷多个小三角形的面积之和就是圆的面积. 这样通过对直线形的无穷小分割, 然后求其极限状态的和的方式证明了圆的面积公式.刘徽的算法! 割之弥细,所失弥少,割之又割, 以至于不可割, 则与圆合体而无所失矣∀体现出程序化的过程, 可以看出圆内接正多边形逐渐逼近圆的变化趋势,并且刘徽依此开创了求圆周率精确近似值的方法, 将这种极限思想用于近似计算.其中包含有迭代过程和子程序,是一种典型的循环算法,充分体现了程序化的特点.中算家的几何学,并不追求逻辑论证的完美,而是着重于实际计算问题的解决, ! 析理以辞, 解体用图∀, 以建立解决问题的一般方法和一般原则. 但另一方面,这种几何学又是以面积、 体积、 勾股相似等为基本概念,以长方形面积算法、 长方形体积算法、 相似勾股形的性质为出发点的, 整个几何理论建立在! 出入相补原理∀等基本原理之上.例如,由勾股定理自然地引起平方根的计算问题,而求平方根和立方根的方法, 其步骤就是以出入相补原理为几何背景逐步索骥而得.这方面内容的介绍, 不仅可以丰富学生的算法知识,而且可以通过揭示蕴藏其中的数学背景和文化内涵, 激发学生学习算法的兴趣,体会算法在人类发展史中的作用.3 中国古代数学算法的教学价值3. 1 培养正确数学观的良好平台中国传统算法尽管与现代算法在具体形式上差别很大,但是重要的是形式后面的认识论发展线索可以为现代算法教学的体系、 教学层次提供依据.它的具体数学知识载体也是现代算法教学的重要源泉. 各种算法的创立就是创造性劳动的产物,即是创造思维的一种! 凝固∀和! 外化∀. 其次, 通过把一部分问题的求解归结为对于现成算法的! 机械应用∀, 这就为人们积极地去从事新的创造性劳动提供了更大的可能性. 从而算法化也就意味着由一个平台向更高点的跳跃.吴文俊先生的研究使中国传统数学的算法重见天日, 开拓了数学机械化的新领域, 吴先生提出! 数学教育的现代化就是机械化∀.他在研究中这样写道: 数学问题的机械化, 就要求在运算和证明过程中, 每前进一步之后,都有一个确定的必须选27 2010 年 第49 卷 第2 期 数学通报择的下一步, 这样沿着一条有规律的, 刻板的道路,一直达到结论.证明机械化的实质在于, 把通常数学证明中所固有的质的困难,转化为计算的量的复杂性.计算的量的复杂性在过去是人力不可能解决的,而计算机的出现解决了这种复杂性.吴先生的理论和实践已经表明,证明和计算是数学的两个方面, 且又是统一的,这在数学教育中具有重要意义.我们应当引导学生了解古人对问题思考的角度,学会站在巨人的肩膀上,比如按照中国古代开方术的思路就可以编造程序在现代计算机上实现开方.培养学生在学习数学知识的同时更多地关心所学知识的社会意义和历史意义,力图在面向未来的同时,通过同传统上的哲学、 历史和社会学的思想结合起来, 形成正确的数学观.算法教学就为此搭建了一个良好的平台, 并且承载丰富的历史底蕴.3. 2 渗透爱国主义教育的最佳契机与西方相比, 中算理论具有高度概括与精练的特征, 中算家经常将其依据的算理蕴涵于演算的步骤之中, 起到! 不言而喻, 不证自明∀的作用,可以认为中国传统数学乃是为建立那些在实际中有直接应用的数学方法而构造的最为简单, 精巧的理论建筑物. 因此, 中算理论可以说是一种! 纲目结构∀:目是组成理论之网的眼孔;纲是联结细目的总绳.以术为目, 以率为纲,即是依算法划分理论单元,而用基本的数量关系把它们连结成一个整体. 纲举目张,只有抓住贯串其中的基本理论与原理, 才能看清算法的来龙去脉.下面是吴文俊先生总结的! 关于算术代数部分发明创造的一张中外对照表∀.从算法教学管窥中国古代数学史中国 外国位值制十进位记 最迟在九章算术 成书时已十分成熟 印度最早在 6 世纪末才出现分数运算 周髀算经 中已有, 在九章算术 成书时已成熟 印度最早在 7 世纪才出现十进位小数 刘徽注中引入, 宋秦九韶 1247年时已通行 西欧 16 世纪时始有之, 印度无开平方、 立方 周髀算经 中已有开平方, 九章算术 中开平、 立方已成熟西方在 4 世纪末始有开平方, 但还无开立方, 印度最早在 7 世纪算术应用 九章算术 中有各种类型的应用问题 印度 7 世纪后的数学书中有某些与中国类似的问题与方法正负数 九章算术 中已成熟 印度最早见于 7 世纪,西欧至 16 世纪始有之联立一次方程组 九章算术 中已成熟 印度 7 世纪后开始有一些特殊类型的方程组, 西方迟至 16 世纪始有之二次方程 九章算术 中已隐含了求数值解法,三国时有一般解求法 印度在 7 世纪后,阿拉伯在 9世纪有一般解求法三次方程 唐初( 公元 7 世纪初) 有列方程法, 求数值解已成熟西欧至 16 世纪有一般解求法, 阿拉伯 10 世纪有几何解高次方程 宋时( 12 # 13 世纪)已有数值解法 西欧至 19 世纪初始有同样方法联立高次方程组与消元法 元时( 14 世纪初) 已有之 西欧甚迟,估计在 19 世纪28 数学通报 2010 年 第49 卷 第2 期3. 3 品位数学美学思想的美妙境界中国古代数学不但具有实用性特征, 还蕴涵着丰富的美学思想. 比如九章算术 中列方程的方式,相当于列出其增广矩阵,其消元过程相当于矩阵变换,而矩阵是数学美学方法中对称最典型的表现形式之一; 九章算术 中用几何方法巧妙地解决了很多代数问题, 这是数形结合的统一: 把数学问题改编成歌诀,以便于掌握和传授,这是文学艺术与数学的统一. 总之, 在算法教学中, 应努力把握和利用自己文化传统中的积极因素进行教学,这对数学教育的发展具有重要的意义.参考文献1 中学数学课程教材研究开发中心. 普通高中课程标准实验教材书(数学) [ M] . 北京: 人民教育出版社, 20072 中华人民共和国教育部. 普通高中数学课程标准(实验) [ M] .北京: 人民教育出版社, 20033 李文林. 数学史概论(第二版) [ M ] . 北京: 高等教育出版社, 20024 王鸿钧, 孙宏安. 中国古代数学思想方法[ M] . 南京: 江苏教育出版社, 19885 张维忠. 数学, 文化与数学课程[ M] . 上海: 上海教育出版社, 19996 吴文俊. 吴文俊论数学机械化[ M ] . 济南: 山东教育出版社, 19957 代钦. 儒家思想与中国传统数学[ M] . 北京: 商务印书馆, 20038 费泰生. 算法及其特征[ J] . 数学通讯, 2004, 79 张奠宙. 算法[ J] . 科学, 2003, 55( 2)10 李建华. 算法及其教育价值[ J ] . 数学教育学报, 2004, 311 李亚玲. 算法及其学习的意义[ J ] . 数学通报, 2004, 2(上接第23 页) 实验教师对课改实验进行探索、 总结、 反思、 调整, 推广比较成熟的经验,同时纠正实验过程中的偏颇与极端行为,教学过程逐步进入新的稳定阶段.教学过程逐步过渡到以问题为主线、 以活动为主线的! 无环节∀模式.( 2)受不同的教学理念影响, 教师角色、 学生角色、 教学目标、 教学过程关注点等方面, 在教学过程中有很大差异.教师角色 学生角色 教学目标 教学过程关注领导者(权威)接 受 者(被动)让 学 生 掌握 数 学 知识技能知识 引入, 讲 解本质, 巩固练习主导者(决定)观 察 者(协助)让 学 生 观摩 数 学 产生过程展示 过程, 注 重建构, 强化训练引导者(组织)参 与 者(主动)让 学 生 参与 探 究 数学 生 成 过程问题 情境, 提 出问题, 学生活动( 3) 2004 年高中数学课程改革后, 课堂教学发生一定的变化,广泛地进行! 创设情境∀! 提出问题∀!引导学生探究探索∀, 出现了以! 问题主线∀、! 活动主线∀为主的课堂, 出现了! 问题情境学生活动建立数学运用数学同顾反思∀的整体课堂构思.这些改变对于揭示数学的内在本质, 发展学生的思维能力起到积极的作用.( 4) 由于受多种因素制约(特别是高考) ,与初中相比, 本次课改后高中数学课堂教学变化幅度不大,近半数的课堂教学模式仍然以五环节为主.对于课改倡导的教学理念, 只是渗透在传统的教学模式中,目前高中数学课堂教学改革的力度、 深度与课改的预期目标还有一定的距离.我们看到2008 年的赛课教案的创新、 探索力度, 远没有1990 年的名师授课录 大, 那时还没有明确提出课改理念,但他们却进行积极的探索, 关注学生主体. 而今天,课改的理念已经系统培训 5 年, 许多教师仍停留在形式层面,未能变成自觉的行为.参考文献1 李善良. 我国数学教学设计的探索与评析# # # 兼及十年初中数学教师说课评比活动[ J ] . 中国数学教育(初中版) , 2007, 92 编委会. 名师授课录(中学数学高中版) [ M] , 上海教育出版社, 19913 2000 年全国首届高中青年数学教师优秀课观摩与评比的教案(会议资料)4 2008 年全国第四届高中青年数学教师优秀课观摩与评比的教案(会议资料)5 李善良. 关于数学教学中问题的设计[ J] . 高中数学教与学,2008, 129 2010 年 第49 卷 第2 期 数学通报