还有大家熟悉的如鸡兔同笼问题:“今有雉(鸡)兔同笼,上有三十五头,下有九十四足。问雉兔各几何。”就有各种有趣的解决方法和步骤(即算法)。如《孙子算经》有题“物不知数”:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?南宋大数学家秦九韶则进一步开创了对一次同余式理论的研究工作,推广“物不知数”的问题,其解法在西方的数学史里称为“中国的剩余定理”。还有一些分配趣题,一笔画问题等等,这些趣题问题简单,却蕴涵着浓浓算法思维,亦庄亦偕,妙趣横生,引人入胜。
一些简单实用算法比如一些速算方法也为学生喜闻乐见:十七乘十九可以速算,例17乘19,①将其中一个的个位数加到另一个数,得到26;②得到的数后面添个0,得到260;③两个个位数相乘得到63;④两得数相加,260+63=323,就是所求。这种方法很易口算。又如末位数是5的两位数的平方可以速算,例35的平方可以算成:①十位数加1乘十位数得(3+1)×3=12;②得数后面写上25,得到1225就是所求。等等。
“知之者不如好之者,好之者不如乐之者”,兴趣是最好的老师。心理学研究表明,求知欲和学习兴趣是一种内在的学习动机,借助算法激发兴趣,借助兴趣学习算法,挖掘出一些算法中的趣味因素,从而使数学变得妙趣横生,我们就能从根本上改善数学学科的枯燥乏味的负面特点,使学生在学习数学的过程中能感受到其中乐趣,从而达到“趣学”“乐学”的最佳境界。
二、算法思想可以作为提高学生的数学思维能力的载体
“高中数学课程应注重提高学生的数学思维能力,这是数学教育的基本目标之一”。“对算法内容,应着重强调使学生体会算法思想、提高逻辑思维能力,帮助学生理解算法思想及其作用。”算法进入高中新课程,对学生学习其他知识是很有帮助的。算法的思想可以帮助学生更好地理解、思考其他章节的问题;算法能够帮助学生清晰的分析问题、解决问题,提高他们的逻辑思维能力;算法能让他们养成良好的思维习惯。所以,“可以把算法融入有关数学课程内容中”。
比如解析几何的问题,一直是学生感觉比较困难的。但许多问题在解决思路和方法上有很强的共性,步骤类似,可以引导学生将他们分类整理成一定的算法;许多问题在切入点上有很多选择,可以引导学生设计算法进行比较从而找出比较好的解决方案和方法。例如,对轨迹的求解,方法众多,学生难以把握。以下的算法可帮助学生掌握大部分轨迹问题的解决方法,养成良好思维习惯。
其他问题的解决(比如数列的前n的和的求解;通项公式的求解等)也可以设计类似的算法,以梳理学生的知识、技能,提高解决问题的条理性。培养数学思维习惯和模式,这才是最重要的。正如日本数学教育家米山国藏说的:“我搞了这么多年的数学教育,发现学生们在初中、高中阶段学习的数学知识离校后不到一年,便很快忘光了。然而,无论他们从事什么工作,唯有深深铭刻在头脑中的数学精神、数学思想方法、研究方法却随时的发生作用,使他们受益终生。”
三、算法可以作为发展学生的数学应用意识,了解一些前沿应用的载体
软卧上海北京南京
温州254642193
上海——499162
北京————416
“实践表明,开展数学应用的教学活动符合社会需要,有利于激发学生学习数学的兴趣,有利于增强学生的应用意识,有利于扩展学生的视野(新课标)。”借助算法的改进我们已经取得了什么成就?算法在生产技术中有什么用处?这些都是值得学生了解的内容。
一个实用的例子:一个推销员从温州出发,要到南京、上海、北京三个城市各去一次,最后回到温州。其中的票价如表所示,那么,这个推销员选择什么路线才能使他的花费最少?最少的花费是多少?我们可以用穷举法求出不同的路线共有3!=6条,考虑到俩城市之间来去的路费相同,所以只要考虑3!2=3种情况就可以了,即温州→南京→上海→北京→温州,温州→南京→北京→上海→温州,温州→上海→南京→北京→温州,三路线的费用分别是1496元、1362元、1474元,正确答案是选择第二条路线(或者倒过来走),最少花费是1362元。
但如果把城市个数推广到30个,我们又如何得到最优解呢?用穷举法,我们要考虑30!2=132626429906095529318154240000000条路线,美国国际商用机器公司(IBM)研制的“蓝色基因/L”超级计算机系统是目前世界上运算速度最快的电脑,达到每秒1368万亿次浮点运算(我们就当它每秒可以计算1368×1012条路线的费用),那么计算的时间就是30!(2×1368×1012×60×60×24×365)≈3074亿年。而太阳的寿命大约还有50亿年,真是要算到地老天荒了。怎么办呢?退而求其次,我们可以设计一个比较好的算法得到一个相对比较好的“拟最优”的解。就是从温州开始,去寻找到下一个花费最小的城市作为下一站,再从该站出发按照这个方法寻找下一站,如此下去直到最后。可以得到一个比较好的结果。
那么,这种问题的研究有什么实际意义呢?有的,比如,我们要在城市间铺设铁路要使总路程最短或我们要在一块电路板上钻30个孔,如何设计钻头的移动路线,使得总路线最短,就是值得研究的问题,它实际上也就是上面的问题。
再比如,人工智能在弈棋机上的成就也引人注目,就一盘棋的结果而言,它的过程几乎是无限的,每一步棋之后的变化是极其复杂的,要穷尽每一步棋之后的变化就算最强的计算机也难以穷尽,比如中国象棋从开始到结束,所有可能的走棋方式大约是10150次方,这么多的可能性即使计算到地球毁灭也计算不出一步棋的走法。但是,计算机专家们模仿人的思考方法改进了算法(包括选择比较、建立典型局面库等),尽可能地简化搜索范围,然后进行横向比较并选择走法。弈棋机就变得非常强大,甚至击败了人类中的特级大师。
还有如算法在计算机数据处理中的应用;吴文俊发明吴方法,用计算机证明大量几何定理。将这些事实告诉我们的学生时,相信会激起学生心中的涟漪,使之有所感,有所思。因此,我们“在数学教学中,应发展学生的应用意识;通过丰富的实例引导学生应用数学知识解决实际问题,经历探索、解决问题的过程,体会数学的应用价值”。从而帮助学生认识到:“数学与我有关,与实际生活有关,数学是有用的。”
四、算法可以作为探究性课题,作为倡导积极主动、勇于探索的学习方式的载体
“学生的数学活动不应限于接受、记忆、模仿和练习,高中数学课程还应倡导自主探索、动手实践、合作交流、阅读自学等学习数学的方式力求通过各种不同形式的自主学习、探究活动,让学生体验数学发现和创造的历程,发展他们的创新意识。”
算法可以成为达成以上目的的载体之一。例如,通过《必修3》的学习,学生已经学会将三个数按大小顺序排列的方法,可以将本题进行变式成为研究性问题进行探究:将一个45人班级的学生数学成绩从高到低排列,若考虑所有情况,则最多有45!种结果,其中只有一种符合要求,但计算机却是难以穷尽的。我们可以设计一个较好的算法让计算机加以解决:(1)任取一数作为第一数。(2)再输入一数与之比较,大于第一数则取而代之作为第一数,原来的数为第二数,否则原来的数仍为第一数,后输入的数为第二数。(3)再输入一数先与最大数比较,大者为第一数;小者与第二数比较,大的为第二数;小的为第三数。如此下去,即可将这45个数从高到低排列。而且比较的次数是1+2+3+……+44=990次,计算机瞬间就可完成。进一步探究:将全班45名同学的姓名按拼音字母顺序排列,也可借鉴此法解决。之后再让学生自行寻找类似的相关问题,设计算法加以解决。另外,五次或五次以上的方程是没有一般解的,但用迭代法,二分法可求得近似解,根据学生知识不难设计成算法在计算机上运行。在学生完成这一系列任务的过程中,可以领略到算法的巨大力量,养成积极主动、勇于探索的学习方式,培养了分析问题与解决问题的能力,这就是数学的素质。也就是说“数学作为教育的一部分,不仅仅是传授知识,更重要的是培养一种分析问题与解决问题的能力,甚至更广泛一点说,数学在某种程度,某种意义上影响学生的素质”。
五、算法可以作为体现数学的文化价值的载体
“数学课程应适当反映数学的历史、应用、和发展趋势应帮助学生了解数学在人类文明发展中的作用,逐步形成正确的数学观。为此,高中数学课程应提倡体现数学的文化价值。”
文化,是指人类在社会历史发展过程中所创造的物质和精神财富的总和。数学是人类文化的一部分,算法自然也是文化的一部分,也有它重要的价值,而这种价值,正越来越重要。
中国古代数学以算法为主要特征,涉及的内容广泛,可谓洋洋洒洒,蔚然大观。分数运算、比例计算、加减消元法解线性方程组、解二次方程、勾股弦定理等;刘辉作《九章算术注》,发明割圆术,从圆内接正六边形出发,算到一百九十二边形;祖冲之给出圆周的约率和密率,为世界学术界所称道;祖暅原理(等积原理)在求锥体、台体以及球的体积中的应用;贾宪—杨辉三角(二项式展开的系数表);秦九韶的《数书九章》韩信点兵和中国剩余定理(不定方程的解);天元术首次提出未知量,四元术解高次代数方程;沈括“隙积术”和杨辉“垛积术”研究了高阶等差数列求和等等。都是算法数学的典范。中国现代在算法上的成就比较典型的有:(1)冯康发现有限元素法;(2)苏步青从船体放样到发明《计算几何》;(3)吴文俊创立的几何定理的机器证明方法(世称吴方法),用现代的算法理论,焕发了中国古代数学的算法传统,享有很高的国际声誉。正如袁震东教授指出:中国算法数学具有应用性、计算性、构造性、程序性,又是特别适合计算机运算的数学。
数学史上对圆周率的研究、计算有诸多方法。
我们可以通过古往今来的这些例子,使学生懂得算法学习的实用性,“体会数学的应用价值、人文价值”;这也是一种非智力因素的利用策略,通过影响学生的情感,使学生产生自豪感,有利于培养学生的爱国主义和对数学的感情。当然,数学作为文化的一部分,其最根本的特征是它还体现了一种探索精神,和它的科学价值。所以,我们完全可以将算法作为文化的载体、学生研究的载体,让学生在学习中了解、体会、感悟,感受它们,探究它们,将来去发展它们、应用它们。