1、中国古代算法案例(1)介绍中国古代算法的案例韩信点兵孙子问题;(2)用三种方法熟练的表示一个算法;(3)让学生感受算法的意义和价值教学重点、难点:不定方程解法的算法教学过程一、问题情境(韩信点兵-孙子问题):韩信是秦末汉初的著名军事家。据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么方法,不要逐个报数,就能知道场上的士兵的人数。韩信先令士兵排成 3 列纵队,结果有 2 个人多余;接着立即下令将队形改为 5 列纵队,这一改,又多出 3 人;随后他又下令改为 7 列纵队,这次又剩下 2 人无法成整行。在场的人都哈哈大笑,以为韩信不能清点出准确的人数,不料笑声刚落,韩信高声报告共有士兵
2、 2333 人。众人听了一愣,不知道韩信用什么方法这么快就能得出正确的结果的。同学们,你知道吗?背景说明:1类似的问题最早出现在我国的算经十书之一的孙子算经中原文是:“今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?答曰:二十三”2孙子算经的作者及确切的年代均不可考,不过根据考证,确切的年代不会在晋朝之後,以这个考证来说上面这种问题的解法,中国人发现得比西方早,所以这个问题的推广及其解法,被称为中国剩余定理。中国剩余定理(Chinese Remainder Theorem)在近代抽象代数学中占有一席非常重要的地位;3该问题的完整的表述,后来经过宋朝数学家秦九韶的推广
3、,又发现了一种算法,叫做“大衍求一术”。在中国还流传着这么一首歌诀:三人同行七十稀,五树梅花廿一枝,七子团圆月正半,除百零五便得知。它的意思是说:将某数(正整数)除以 3 所得的余数乘以 70,除以 5 所得的余数乘以 21,除以 7 所得的余数乘以 15,再将所得的三个积相加,并逐次减去 105,减到差小于 105 为止。 所得结果就是某数的最小正整数值。用上面的歌诀来算孙子算经中的问题,便得到算式:270+321+215=233,2331052=23,即所求物品最少是 23 件。二.算法设计思想:“孙子问题”相当于求关于 的不定方程组的 的正整数解; ,xyz3257mxyz设所求的数为
4、,根据题意 应该同时满足下列三个条件:m 被 3 除后余 2,即 ;od(,3)2 被 5 除后余 3,即 ;5 被 7 除后余 2,即 ;,7用自然语言可以将算法写为:1S21m如果 且 且 则执行 ,否则执行 ;3od(,3)(,5)3mod(,7)24S2S输出4Sm三.流程图和伪代码:伪代码:1mDO Loop Until 且 且 od(,3)2(,5)3mod(,7)2Print 注:这里的解题的过程中运用的 DO 循环语句和课本上的解题略有区别请注意辨别!四、回顾小结:1中国数学在世界数学史上的巨大贡献; 2实际问题的分析和解决问题过程;3算法的表示及语句的运用;五、课外作业:课本第 31 页第 3 题输出 m且od(,3)2且571m开始结束YN