132算法案例(秦九韶算法).ppt
算算 法法 案案 例例第二课时1、求两个数的最大公约数的两种方法分别是(、求两个数的最大公约数的两种方法分别是()和()和()。)。2、两个数、两个数21672,8127的最大公约数是(的最大公约数是()A、2709 B、2606 C、2703 D、2706复习引入复习引入:辗转相除法辗转相除法更相减损术更相减损术 A新课讲解新课讲解:怎样求多项式怎样求多项式f(x)=xf(x)=x5 5+x+x4 4+x+x3 3+x+x2 2+x+1+x+1当当x=5x=5时的值呢?时的值呢?计算多项式计算多项式()=当当x=5的值的算法:的值的算法:算法算法1:因为因为()=所以所以(5)=55555=3125625125255=3906算法算法2:(5)=55555=5(5555)=5(5(555 )=5(5(5(5+5+)+)+)+=5(5(5(5(5+)+)+)+)+算法算法1:因为因为()=所以所以(5)=55555=3125625125255=3906算法算法2:(5)=55555=5(5555)=5(5(555 )=5(5(5(5+5+)+)+)+=5(5(5(5(5+)+)+)+)+共做了共做了1+2+3+4=10次乘法运算,次乘法运算,5次加法运算。次加法运算。共做了共做了4次乘法运算,次乘法运算,5次加法运算。次加法运算。数书九章数书九章秦九韶算法秦九韶算法设设是一个是一个n 次的多项式次的多项式对该多项式按下面的方式进行改写:对该多项式按下面的方式进行改写:这是怎样的一种改写方式?最后的结果是什么?要求多项式的值,应该先算最内层的一次多项式的值,即要求多项式的值,应该先算最内层的一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即最后的一最后的一项是什么项是什么?这种将求一个这种将求一个n次多项式次多项式f(x)的值转化成求的值转化成求n个一个一次多项式的值的方法,称为次多项式的值的方法,称为秦九韶算法秦九韶算法。通过一次式的反复计算,逐步得出高次多通过一次式的反复计算,逐步得出高次多项式的值,对于一个项式的值,对于一个n次多项式,只需做次多项式,只需做n次次乘乘法和法和n次次加法即可。加法即可。秦九韶算法的特点:秦九韶算法的特点:例:例:已知一个五次多项式为已知一个五次多项式为用秦九韶算法求这个多项式当用秦九韶算法求这个多项式当x=5的值。的值。解:解:将多项式变形:将多项式变形:按由里到外的顺序,依此计算一次多项式当按由里到外的顺序,依此计算一次多项式当x=5时的值:时的值:所以,当所以,当x=5时,多项式的值等于时,多项式的值等于17255.2你从中看到了怎样的规律?怎么用程序框图来描述呢?程序框图:程序框图:开始开始输入输入f(x)的系数:的系数:a0,a1,a2,a3,a4a5输入输入x0n5?输出输出v结束结束v=vx0+a5-nn=n+1YN n=1 v=a5这是一个在这是一个在秦九韶算法中秦九韶算法中反复执行的步骤,因此可反复执行的步骤,因此可用循环结构来实现。用循环结构来实现。另解:(秦九韶算法的另一种直观算法)另解:(秦九韶算法的另一种直观算法)5 2 3.5 -2.6 1.7 -0.8 X5 27 138.5 689.9 3451.2 17255.2+多项式的系数多项式的系数多项式的值25 135 692.5 3449.5 1725605(1)、算法步骤:、算法步骤:第一步:输入多项式次数第一步:输入多项式次数n、最高次项的系数、最高次项的系数an和和x的值的值.第二步:将第二步:将v的值初始化为的值初始化为an,将,将i的值初始化为的值初始化为n-1.第三步:输入第三步:输入i次项的系数次项的系数an.第四步:第四步:v=vx+ai,i=i-1.第五步:判断第五步:判断i是否大于或等于是否大于或等于0,若是,则返回第,若是,则返回第三步;否则,输出多项式的值三步;否则,输出多项式的值v。思考:思考:你能设计程序把你能设计程序把“秦九韶算法秦九韶算法”表示出来吗?表示出来吗?(2)程序框图:)程序框图:输入输入ai开始开始输入输入n,an,xi=0?输出输出v结束结束v=vx+aii=i-1YNi=n-1V=an(3)程序:)程序:INPUT “n=”;nINPUT“an=”;aINPUT“x=”;xv=ai=n-1WHILE i=0 PRINT“i=”;i INPUT“ai=”;a v=v*x+a i=i-1WENDPRINT vEND输入输入ai开始开始输入输入n,an,xi=0?输出输出v结束结束v=vx+aii=i-1YNi=n-1V=an课堂小结:课堂小结:1、秦九韶算法的方法和步骤、秦九韶算法的方法和步骤2、秦九韶算法的程序框图、秦九韶算法的程序框图