1.3.2 算法案例---秦九韶算法一、教学要求:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质;理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用. 二、教学过程:[复习准备]1. 分别用辗转相除法和更相减损术求出两个正数 623 和 1513 的最大公约数. 2. 设计一个求多项式当时的值的算法. (学生自己提出一般的解决方案:将代入多项式进行计算即可)提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了 5+4+3+2+1=15 次乘法运算,5 次加法运算. 优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)[讲授新课]1. 教学秦九韶算法:① 提问:在计算的幂值时,可以利用前面的计算结果,以减少计算量,即先计算,然后依次计算,,的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法?(上述算法一共做了 4 次乘法运算,5 次加法运算)② 结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果. ③ 更有效的一种算法是:将多项式变形为,依次计算 ,,,,故. ――这种算法就是“秦九韶算法”. (注意变形,强调格式)④ 练习:用秦九韶算法求多项式当时的值. ⑤ 如何用秦九韶算法完成一般多项式的求值问题?改写:.首先计算最内层括号内一次多项式的值,即,然后由内向外逐层计算一次多项式的值,即,,,.⑥ 结论:秦九韶算法将求次多项式的值转化为求个一次多项式的值,整个过程只需 次乘法运算和次加法运算;观察上述个一次式,可发出的计算要用到的值,若令,可得到下列递推公式:. 这是一个反复执行的步骤,因此可用循环结构来实现. 试画出程序框图,并设计出程序;程序框图: 程序设计:⑦ 练习:用秦九韶算法求多项式当时的值并画出程序框图. [小结] 秦九韶算法的特点及其程序设计三、巩固练习:1、练习:教材 P45 第 2 题 2、作业:教材 P48 第 2 题