第4讲:中国古代中的算法案例 (教师版)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国古代数学中的算法案例

__________________________________________________________________________________

__________________________________________________________________________________

1.理解算法案例的算法步骤和程序框图.

2.引导学生得出自己设计的算法程序.

3. 体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.

1.求两个正整数最大公约数的算法

(1)更相减损之术(等值算法)

用两数中较大的数减去较小的数,再用差数和较小的数构成新的一对数,再用大数减小数,以同样的操作一直做下去,直到产生一对相等的数,这个数就是最大公约数.

(2)用“等值算法”求最大公约数的程序

while a=a-b b=b-a end

2.割圆术

用圆内接正多边形面积逐渐逼近圆的面积的算法是计算圆周率的一种方法.

3.秦九韶算法:

把一个n 次多项式f (x )=a n x n

+a n -1x n -1

+…+a 1x +a 0改写成如下形式: f (x )=a n x n +a n -1x n -1+…+a 1x +a 0

=(a n x n -1+a n -1x n -2

+…+a 1)x +a 0

=((a n x n -2+a n -1x n -3

+…+a 2)x +a 1)x +a 0 =…

=(…((a n x +a n -1)x +a n -2)x +…+a 1)x +a 0

求多项式的值时,首先计算最内层括号内一次多项式的值,然后由内向外逐层计算一次多项式的值.这样通过一次式的反复运算,逐步得出高次多项式的值的方法称作秦九韶算法。

观察上述秦九韶算法中的n 个一次式可见,只要令⎩⎨⎧+==--k n k k

n

a x v v a v 10其中n k ,,2,1 =就得到

了一个递推关系。这个递推关系是一个反复执行的步骤,可用循环语句来实现。

理解秦九韶算法的关键:一是弄清算法原理是加法对乘法的分配律,二是弄清算法设计中递推关系是一个反复执行的运算,故用循环语句来实现。

(1)秦九韶算法过程分析:

由于⎩⎨⎧+==--k n k k

n

a x v v a v 10其中k =1,2,…,n .

这样我们便可由v 0依次求出v 1,v 2,…,v n :

v 1=v 0x +a n -1,v 2=v 1x +a n -2,v 3=v 2x +a n -3,…,v n =v n -1x +a 0。

于是我们用v 来记录每次一次式计算的结果,最初赋值v =a n ,用v =v *x +a n -i 实现递推循环,i 的初值为1,i =i +1记录循环次数,i ≤n 控制何时结束循环输出v .f (x )的系数a k 用一个循环语句实现输入。

(2)f (x )=a n x n +a n -1x n -1

+…+a 1x +a 0当x =x 0时,求函数值f (x 0)的算法设计。 程序框图:

(3)用秦九韶算法将一个多项式(n 次)的至多()2

1+n n 次乘法和n 次加法运算减少为至多n 次乘法和n 次加法运算,大大提高了运算效率。

类型一用更相减损术求两个正整数的最大公约数

例1:求80和36的最大公约数.

[解析]当大数减小数的差等于小数时停止减法,较小的数就是两数的最大公约数.

[答案]80-36=44,

44-36=8,

36-8=28,

28-8=20,

20-8=12,

12-8=4,

8-4=4.

∴80和36的最大公约数是4.

练习1:用更相减损之术分别求下列两组数的最大公约数:

(1)78与36;(2)1 515与600.

[答案](1)(78,36)→(42,36)→(6,36)→(6,30)→(6,24)→(6,18) →(6,12)→(6,6),故78与36的最大公约数为6.

(2)1 515-600=915,915-600=315,600-315=285,315-285=30,285-30=255,255-30=225,225-30=195,195-30=165,165-30=135,135-30=105,105-30=75,75-30=45,45-30=15,30-15=15,故1 515与600的最大公约数是15.

类型二用辗转相除法求两个正整数的最大公约数

例2:用辗转相除法求546与429的最大公约数.

[解析]用辗转相除法求最大公约数步骤较少,而更相减损术虽然步骤较长,但运算简单.[答案]546=1×429+117,

429=3×117+78,

117=1×78+39,

78=2×39,

故546与429的最大公约数为39.

练习1:用辗转相除法求288和123的最大公约数.

[答案]288=2×123+42,

123=2×42+39,

42=1×39+3,

39=13×3,

故3就是288和123的最大公约数.

练习2:用辗转相除法求355和60的最大公约数.

[答案]355=5×60+55,

60=1×55+5,

55=11×5,

故5就是355和60的最大公约数.

类型三用秦九韶算法求多项式的值

例3:用秦九韶算法求多项式f(x)=x5+0.11x3-0.15x-0.04当x=0.3时的值.

[解析](1)用秦九韶算法求多项式的值,首先要将多项式改写,然后由内向外逐次计算. 由于下一次计算要用到上一次的结果,故应认真、细心,确保每个中间结果的准确性.

相关文档
最新文档