1、算法案例,(第二课时),1、求两个数的最大公约数的两种方法分别是( )和( )。2、两个数21672,8127的最大公约数是 ( )A、2709 B、2606 C、2703 D、2706,案例2、秦九韶算法,秦九韶算法是求一元多项式的值的一种方法。,问题,怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?,算法一:把5代入,计算各项的值,然后把它们加起来。,算法二:先计算x2的值,然后依次计算x2x、( x2x)x、( ( x2x)x)x的值。,计算多项式() =当x = 5的值,算法1:,因为() =,所以(5)=55555,=3125625125255,= 3906,算
2、法2:,(5)=55555,=5(5555) ,=5(5(555 ) ) ,=5(5( 5 (55 ) ) ) ,=5(5( 5 (5 (5 ) ) ) ) ,分析:两种算法中各用了几次乘法运算?和几次加法运算?,数书九章秦九韶算法,对该多项式按下面的方式进行改写:,思考:当知道了x的值后该如何求多项式的值?,这是怎样的一种改写方式?最后的结果是什么?,要求多项式的值,应该先算最内层的一次多项式的值,即,然后,由内到外逐层计算一次多项式的值,即,最后的一项是什么?,这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。,思考:在求多项式的值上,这是怎样的一个转化?
3、,第一步:计算最内层anx+an-1的值,将anx+an-1的值赋给一个变量v1(为方便将an赋给变量v0);第二步:计算(anx+an-1)x+an-2的值,可以改写为v1x+an-2,将v1x+an-2的值赋给一个变量v2;依次类推,即每一步的计算之后都赋予一个新值vk,即从最内层的括号到最外层的括号的值依次赋予变量v1,v2,,vn.第n步所求值vn=vn-1x+a0即为所求多项式的值。,例2 已知一个五次多项式为,用秦九韶算法求这个多项式当x = 5的值。,解:,将多项式变形:,按由里到外的顺序,依此计算一次多项式当x = 5时的值:,所以,当x = 5时,多项式的值等于17255.2,你从中看到了怎样的规律?怎么用程序框图来描述呢?,开始,输入f (x)的系数:a0、a1、a2、a3、a4、a5,输入x0,n=0,v=a5,v= vx0+a5-n,n=n+1,n = 0?,输出v,结束,否,是,i=i-1,INPUT “an=“; a,INPUT “n=“; n,INPUT “x=“; x,v=a,i=n-1,WHILE i=0,INPUT “ai=“; a,v=v*x+a,PRINT “i=“ ; i,i=i-1,WEND,PRINT v,END,程序:,课后作业,课本P47 第2题,