§1.3 算法案例1
授课
时间
第 周 星期 第 节
课型
新授课
主备课人
学习
目标
1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析。
2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。
重点难点
理解辗转相除法与更相减损术求最大公约数的方法。
把辗转相除法与更相减损术的方法转换成程序框图与程序语言。
学习
过程
与方
法
自主学习: 认真自学课本34-37.
1.辗转相除法,就是对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽为止,这时的较小的数即为原来两个数的最大公约数.
2. 更相减损术,就是对于给定的两个正整数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,继续上面的减法,直到差和较小的数相等,此时相等的两数即为原来两个数的最大公约数.
合作探究(一):辗转相除法
思考1:18与30的最大公约数是多少?你是怎样得到的?
思考2:对于8251与6105这两个数,由于其公有的质因数较大,利用上述方法求最大公约数就比较困难.注意到8251=6105×1+2146,那么8251与6105这两个数的公约数和6105与2146的公约数有什么关系?
思考3:又6105=2146×2+1813,同理,6105与2146的公约数和2146与1813的公约数相等.重复上述操作,你能得到8251与6105这两个数的最大公约数吗?
思考4:上述求两个正整数的最大公约数的方法称为辗转相除法或欧几里得算法.一般地,用辗转相除法求两个正整数m,n的最大公约数,可以用什么逻辑结构来构造算法?其算法步骤如何设计?
第一步,给定两个正整数m,n(m>n).
第二步,
第三步,
第四步,
思考5:该算法的程序框图如何表示?
思考6:该程序框图对应的程序如何表述?
思考7:如果用当型循环结构构造算法,则用辗转相除法求两个正整数m,n的最大公约数的程序框图和程序分别如何表示?
合作探究(二):更相减损术
思考1:设两个正整数m>n,若m-n=k,则m与n的最大公约数和n与k的最大公约数相等.反复利用这个原理,可求得98与63的最大公约数为多少?
思考2:上述求两个正整数的最大公约数的方法称为更相减损术.一般地,用更相减损术求两个正整数m,n的最大公约数,可以用什么逻辑结构来构造算法?其算法步骤如何设计?
第一步,给定两个正整数m,n(m>n).
第二步,
第三步,
第四步,
思考3:该算法的程序框图如何表示?
思考4:该程序框图对应的程序如何表述?
合作探究(三):辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除法以 为主,更相减损术以 为主,计算次数上辗转相除法计算次数相对 ,特别当两个数字大小区别较大时计算次数的区别较明显。
(2)从结果体现形式来看,辗转相除法体现结果是 则得到,而更相减损术则以 相等而得到
自我检测:
例1 分别用辗转相除法和更相减损术求168与93的最大公约数.
辗转相除法:
更相减损术:
例2 求325,130,270三个数的最大公约数.
达标检测:
1、在对16和12求最大公约数时,整个操作如下:(16,12)→(4,12)→(4,8)→(4,4),由此可以看出12和16的最大公约数是( )
A. 4 B. 12 C. 16 D. 8
2、下列各组关于最大公约数的说法中不正确的是( )
A.16和12的最大公约数是4 B.78和36的最大公约数是6
C.85和357的最大公约数是34 D.105和315的最大公约数是105
3、算法
S1 输入,x,y
S2 m=max{x,y}
S3 n=min{x,y}
S4 若m/n=[m/n]([x]表示x的整数部分)
则输出n,否则执行S5
S5 r=m-[m/n]*n
S6 m=n
S7 n=r
S8 执行S4
S9 输出n 上述算法的含义是 。
4、用辗转相除法求840与1785的最大公约数.
5、用更相减损术求612与468的最大公约数
6、分析算法,编出程序,求两个整数x(x≥0)和y(y>0)的整数商和余数(规定只能用加法和减法运算)。
作业
布置
学习小结/教学
反思
§1.3 算法案例2
授课
时间
第 周 星期 第 节
课型
新授课
主备课人
学习
目标
1. 用转化的数学思想方法理解秦九韶算法。
2. 掌握用秦九韶算法计算高次多项式的值。
3. 提高学生的逻辑思维能力。
重点难点
掌握秦九韶算法思想。
秦九韶算法的步骤。
学习
过程
与方
法
自主学习:认真自学课本37-39,完成下列问题:
求多项式f(x)=x+x+x+x+x+1当x=5的值。
一个自然的做法:把5代入多项式f(x),计算各项的值,然后把它们加起来,这时你一共做了__次乘法运算,__次加法运算。
另一种做法:先计算x的值,然后一次计算x﹒x,( x﹒x)﹒x,( (x﹒x)﹒x)﹒x的值,这样每次都可以用上一次的结果,这时你用了__次乘法运算,__次加法运算。
计算机适合乘法运算少的。
合作探究:
1. 根据秦九韶算法能把多项式f(x)=3x+4x+5x+6x+7x+1改写成________________的形式。当x=5时求f(x)的值_____。
2.上题中需要__次乘法运算,__次加法运算。
自我检测:
1. 用秦九韶算法求多项式f(x)=5x+7x+6x+3x+x+1,当x=3的值。
2.多项式f(x)=15x+32x+21x+8x+6x+8,则f(2)=___。
达标检测:
1. 用秦九韶算法计算多项式f(x)=3x+4x+5x+6x+7x+8x+1,当x=4时,需要做乘法和加法的次数分别是( )
A 6,6 B 5,6 C 5,5 D 6,5
2. f(x)=3x+2x+x+4,则f(10)等于( )
A 3214 B 3210 C 2214 D 90
3. 多项式f(x)=10x+21x+5x+4x+3x+2x+3x+x+1,则f(5)等于( )
A 28079706 B 28089706 C 28179706 D 28189706
4. 多项式f(x)=4x+7x+64x+8x+6x+1,则f(3)= ___。
5.用秦九韶算法计算多项式f(x)= x+4x+3x+1,当x=1.3时的值需要将多项式改写为_______________。
6. 用秦九韶算法求多项式f(x)=9x+21x+7x+64x+8x+6x+1,当x=2的值。
7. 写出求一般多项式f(x)=ax+ ax+···+ax+a,当x=x的算法程序。
作业
布置
学习小结/教学
反思
§1.3 算法案例3
授课
时间
第 周 星期 第 节
课型
新授课
主备课人
学习
目标
解进位制的概念,对一个数能够做不同进制间的转换.
据对进位制的理解,体会计算机的计数原理.
了解进位制的程序框图及程序.
重点难点
理解进位制的概念,对一个数能够做不同进制间的转换
学习
过程
与方
法
知识情境:进位制是为了计数和运算方便而约定的记数系统,如逢十进一,就是十进制;
每七天为一周,就是七进制;每十二个月为一年,就是十二进制,每六十秒为一分钟,
每六十分钟为一个小时,就是六十进制.古代罗马人采取60进制,玛雅人使用20进制,
中国、 埃及、印度等国主要采取10进制.而近代由于计算机的诞生,二进制应运而生.
自主学习:认真自学课本40-45,完成下列问题:
1 一般地,“满k进一”就是k进制,其中k称为k进制的基数.那么k是一个什么范围内的数?
2 十进制使用0~9十个数字,那么二进制、五进制、七进制分别使用哪些数字?
3 十进制数3721中的3表示3个______, 7表示7个_____,2表示2个十,1表示1个一。
于是,我们得到这样的式子:3721=
4 一般地,若k是一个大于1的整数,则以k为基数的k进制数可以表示为一串数字连写在一起的形式: an an-1…a1 a0(k). 其中各个数位上的数字an ,an-1…a1 ,a0的取值范围如何?
5 为了区分不同的进位制,常在设的右下角表明基数,如二进制数10(2),七进制数260(7),十进制数一般不标注基数。
将以下数字表示成不同位上的数字与基数的幂的乘积之和的形式:
110011(2)=
7342(8)=
an an-1…a1 a0(k) =
7 参考教材,用除k取余法将89转化成二进制数得 89=
8. 将以下数字表示成不同位上的数字与基数的幂的乘积之和的形式:
10212(3)= 412(5)=
9 完成下列进位制之间的转化:
23769(8)=________(10) 119(10)= _________(6)
合作探究:
例1 把二进制数110011(2)化为十进制数.
例2 设计一个算法,把k进制数a(共有n位)化成十进制数
例3 把89化为二进制数
例4 设计一个程序,实现“除k取余法”
达标训练:
1.将下列各进制数化为十进制数.
(1)10303(4)= (2)1234(5)=
2.已知10b1(2)=a02(3),求数字a,b的值.
3.用“除k取余法”将十进制数2008分别转化为二进制数和八进制数
4.将五进制数3241(5)转化为七进制数.
5.根据阅读与思考“割圆术”中的程序画出程序框图.
作业
布置
学习小结/教学
反思
1.3 算法案例
整体设计
教学分析
在学生学习了算法的初步知识,理解了表示算法的算法步骤、程序框图和程序三种不同方式以后,再结合典型算法案例,让学生经历设计算法解决问题的全过程,体验算法在解决问题中的重要作用,体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.
三维目标
1.理解算法案例的算法步骤和程序框图.
2.引导学生得出自己设计的算法程序.
3. 体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.
重点难点
教学重点:引导学生得出自己设计的算法步骤、程序框图和算法程序.
教学难点:体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.
课时安排
3课时
教学过程
第1课时 案例1 辗转相除法与更相减损术
导入新课
思路1(情境导入)
大家喜欢打乒乓球吧,由于东、西方文化及身体条件的不同,西方人喜欢横握拍打球,东方人喜欢直握拍打球,对于同一个问题,东、西方人处理问题方式是有所不同的.在小学,我们学过求两个正整数的最大公约数的方法:先用两个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来. 当两个数公有的质因数较大时(如?8 251?与6 105),使用上述方法求最大公约数就比较困难.下面我们介绍两种不同的算法——辗转相除法与更相减损术,由此可以体会东、西方文化的差异.
思路2(直接导入)
前面我们学习了算法步骤、程序框图和算法语句.今天我们将通过辗转相除法与更相减损术来进一步体会算法的思想.
推进新课
新知探究
提出问题
(1)怎样用短除法求最大公约数?
(2)怎样用穷举法(也叫枚举法)求最大公约数?
(3)怎样用辗转相除法求最大公约数?
(4)怎样用更相减损术求最大公约数?
讨论结果:
(1)短除法
求两个正整数的最大公约数的步骤:先用两个数公有的质因数连续去除,一直除到所得的商是两个互质数为止,然后把所有的除数连乘起来.
(2)穷举法(也叫枚举法)
穷举法求两个正整数的最大公约数的解题步骤:从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数.
(3)辗转相除法
辗转相除法求两个数的最大公约数,其算法步骤可以描述如下:
第一步,给定两个正整数m,n.
第二步,求余数r:计算m除以n,将所得余数存放到变量r中.
第三步,更新被除数和余数:m=n,n=r.
第四步,判断余数r是否为0.若余数为0,则输出结果;否则转向第二步继续循环执行.
如此循环,直到得到结果为止. 这种算法是由欧几里得在公元前300年左右首先提出的,因而又叫欧几里得算法.
(4)更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术. 《九章算术》是中国古代的数学专著,其中的“更相减损术”也可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.”翻译为现代语言如下:
第一步,任意给定两个正整数,判断它们是否都是偶数,若是,用2约简;若不是,执行第二步.
第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.
应用示例
例1 用辗转相除法求8 251与6 105的最大公约数,写出算法分析,画出程序框图,写出算法程序.
解:用两数中较大的数除以较小的数,求得商和余数:8 251=6 105×1+2 146.
由此可得,6 105与2 146的公约数也是8 251与6 105的公约数,反过来,8 251与6 105的公约数也是6 105与2 146的公约数,所以它们的最大公约数相等.
对6 105与2 146重复上述步骤:6 105=2 146×2+1 813.
同理,2 146与1 813的最大公约数也是6 105与2 146的最大公约数.继续重复上述步骤:
2 146=1 813×1+333,
1 813=333×5+148,
333=148×2+37,
148=37×4.
最后的除数37是148和37的最大公约数,也就是8 251与6 105的最大公约数.
这就是辗转相除法.由除法的性质可以知道,对于任意两个正整数,上述除法步骤总可以在有限步之后完成,从而总可以用辗转相除法求出两个正整数的最大公约数.
算法分析:从上面的例子可以看出,辗转相除法中包含重复操作的步骤,因此可以用循环结构来构造算法.
算法步骤如下:
第一步,给定两个正整数m,n.
第二步,计算m除以n所得的余数为r.
第三步,m=n,n=r.
第四步,若r=0,则m,n的最大公约数等于m;否则,返回第二步.
程序框图如下图:
程序:
INPUT m,n
DO
r=m MOD n
m=n
n=r
LOOP UNTIL r=0
PRINT m
END
点评:从教学实践看,有些学生不能理解算法中的转化过程,例如:求8 251与6 105的最大公约数,为什么可以转化为求6 105与2 146的公约数.因为8 251=6 105×1+2 146,
可以化为8 251-6 105×1=2 164,所以公约数能够整除等式两边的数,即6 105与2 146的公约数也是8 251与6 105的公约数.
变式训练
你能用当型循环结构构造算法,求两个正整数的最大公约数吗?试画出程序框图和程序.
解:当型循环结构的程序框图如下图:
程序:
INPUT m,n
r=1
WHILE r>0
r=m MOD n
m=n
n=r
WEND
PRINT m
END
例2 用更相减损术求98与63的最大公约数.
解:由于63不是偶数,把98和63以大数减小数,并辗转相减,如下图所示.
98-63=35
63-35=28
35-28=7
28-7=21
21-7=14
14-7=7
所以,98和63的最大公约数等于7.
点评:更相减损术与辗转相除法的比较:尽管两种算法分别来源于东、西方古代数学名著,但是二者的算理却是相似的,有异曲同工之妙.主要区别在于辗转相除法进行的是除法运算,即辗转相除;而更相减损术进行的是减法运算,即辗转相减,但是实质都是一个不断的递归过程.
变式训练
用辗转相除法或者更相减损术求三个数324,243,135的最大公约数.
解:324=243×1+81,
243=81×3+0,
则324与243的最大公约数为81.
又135=81×1+54,81=54×1+27,
54=27×2+0,
则 81 与 135的最大公约数为27.
所以,三个数324、243、135的最大公约数为27.
另法:324-243=81,243-81=162,162-81=81,则324与243的最大公约数为81.
135-81=54,81-54=27,54-27=27,则81与135的最大公约数为27.
所以,三个数324、243.135的最大公约数为27.
例3 (1)用辗转相除法求123和48的最大公约数.
(2)用更相减损术求80和36的最大公约数.
解:(1)辗转相除法求最大公约数的过程如下:
123=2×48+27,
48=1×27+21,
27=1×21+6,
21=3×6+3,
6=2×3+0,
最后6能被3整除,得123和48的最大公约数为3.
(2)我们将80作为大数,36作为小数,因为80和36都是偶数,要除公因数2.
80÷2=40,36÷2=18.
40和18都是偶数,要除公因数2.
40÷2=20,18÷2=9.
下面来求20与9的最大公约数,
20-9=11,
11-9=2,
9-2=7,
7-2=5,
5-2=3,
3-2=1,
2-1=1,
可得80和36的最大公约数为22×1=4.
点评:对比两种方法控制好算法的结束,辗转相除法是到达余数为0,更相减损术是到达减数和差相等.
变式训练
分别用辗转相除法和更相减损术求1 734,816的最大公约数.
解:辗转相除法:
1 734=816×2+102,816=102×8(余0),
∴1 734与816的最大公约数是102.
更相减损术:因为两数皆为偶数,首先除以2得到867,408,再求867与408的最大公约数.
867-408=459,
459-408=51,
408-51=357,
357-51=306,
306-51=255,
255-51=204,
204-51=153,
153-51=102,
102-51=51.
∴1 734与816的最大公约数是51×2=102.
利用更相减损术可另解:
1 734-816=918,
918-816=102,
816-102=714,
714-102=612,
612-102=510,
510-102=408,
408-102=306,
306-102=204,
204-102=102.
∴1 734与816的最大公约数是102.
知能训练
求319,377,116的最大公约数.
解:377=319×1+58,
319=58×5+29,
58=29×2.
∴377与319的最大公约数为29,再求29与116的最大公约数.
116=29×4.
∴29与116的最大公约数为29.
∴377,319,116的最大公约数为29.
拓展提升
试写出利用更相减损术求两个正整数的最大公约数的程序.
解:更相减损术程序:
INPUT “m,n=”;m,n
WHILE m<>n
IF m>n THEN
m=m-n
ELSE
m=n-m
END IF
WEND
PRINT m
END
课堂小结
(1)用辗转相除法求最大公约数.
(2)用更相减损术求最大公约数.
思想方法:递归思想.
作业
分别用辗转相除法和更相减损术求261,319的最大公约数.
分析:本题主要考查辗转相除法和更相减损术及其应用.使用辗转相除法可依据m=nq+r,反复执行,直到r=0为止;用更相减损术就是根据m-n=r,反复执行,直到n=r为止.
解:辗转相除法:
319=261×1+58,
261=58×4+29,
58=29×2.
∴319与261的最大公约数是29.
更相减损术:
319-261=58,
261-58=203,
203-58=145,
145-58=87,
87-58=29,
58-29=29,
∴319与261的最大公约数是29.
设计感想
数学不仅是一门科学,也是一种文化,本节的引入从东、西方文化的不同开始,逐步向学生渗透数学文化.从知识方面主要学习用两种方法求两个正整数的最大公约数,从思想方法方面,主要学习递归思想.本节设置精彩例题,不仅让学生学到知识,而且让学生进一步体会算法的思想,培养学生的爱国主义情操.
第2课时 案例2 秦九韶算法
导入新课
思路1(情境导入)
大家都喜欢吃苹果吧,我们吃苹果都是从外到里一口一口的吃,而虫子却是先钻到苹果里面从里到外一口一口的吃,由此看来处理同一个问题的方法多种多样.怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?方法也是多种多样的,今天我们开始学习秦九韶算法.
思路2(直接导入)
前面我们学习了辗转相除法与更相减损术, 今天我们开始学习秦九韶算法.
推进新课
新知探究
提出问题
(1)求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值有哪些方法?比较它们的特点.
(2)什么是秦九韶算法?
(3)怎样评价一个算法的好坏?
讨论结果:
(1)怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?
一个自然的做法就是把5代入多项式f(x),计算各项的值,然后把它们加起来,这时,我们一共做了1+2+3+4=10次乘法运算,5次加法运算.
另一种做法是先计算x2的值,然后依次计算x2·x,(x2·x)·x,((x2·x)·x)·x的值,这样每次都可以利用上一次计算的结果,这时,我们一共做了4次乘法运算,5次加法运算.
第二种做法与第一种做法相比,乘法的运算次数减少了,因而能够提高运算效率,对于计算机来说,做一次乘法运算所用的时间比做一次加法运算要长得多,所以采用第二种做法,计算机能更快地得到结果.
(2)上面问题有没有更有效的算法呢?我国南宋时期的数学家秦九韶(约1202~1261)在他的著作《数书九章》中提出了下面的算法:
把一个n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0改写成如下形式:
f(x)=anxn+an-1xn-1+…+a1x+a0
=(anxn-1+an-1xn-2+…+a1)x+ a0
=((anxn-2+an-1xn-3+…+a2)x+a1)x+a0
=…
=(…((anx+an-1)x+an-2)x+…+a1)x+a0.
求多项式的值时,首先计算最内层括号内一次多项式的值,即
v1=anx+an-1,
然后由内向外逐层计算一次多项式的值,即
v2=v1x+an-2,
v3=v2x+an-3,
…
vn=vn-1x+a0,
这样,求n次多项式f(x)的值就转化为求n个一次多项式的值.
上述方法称为秦九韶算法.直到今天,这种算法仍是多项式求值比较先进的算法.
(3)计算机的一个很重要的特点就是运算速度快,但即便如此,算法好坏的一个重要标志仍然是运算的次数.如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论的算法.
应用示例
例1 已知一个5次多项式为f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8,
用秦九韶算法求这个多项式当x=5时的值.
解:根据秦九韶算法,把多项式改写成如下形式:
f(x)=((((5x+2)x+3.5)x-2.6)x+1.7)x-0.8,
按照从内到外的顺序,依次计算一次多项式当x=5时的值:
v0=5;
v1=5×5+2=27;
v2=27×5+3.5=138.5;
v3=138.5×5-2.6=689.9;
v4=689.9×5+1.7=3 451.2;
v5=3 415.2×5-0.8=17 255.2;
所以,当x=5时,多项式的值等于17 255.2.
算法分析:观察上述秦九韶算法中的n个一次式,可见vk的计算要用到vk-1的值,若令v0=an,我们可以得到下面的公式:
这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现.
算法步骤如下:
第一步,输入多项式次数n、最高次的系数an和x的值.
第二步,将v的值初始化为an,将i的值初始化为n-1.
第三步,输入i次项的系数ai.
第四步,v=vx+ai,i=i-1.
第五步,判断i是否大于或等于0.若是,则返回第三步;否则,输出多项式的值v.
程序框图如下图:
程序:
INPUT “n=”;n
INPUT “an=”;a
INPUT “x=”;x
v=a
i=n-1
WHILE i>=0
PRINT “i=”;i
INPUT “ai=”;a
v=v*x+a
i=i-1
WEND
PRINT v
END
点评:本题是古老算法与现代计算机语言的完美结合,详尽介绍了思想方法、算法步骤、程序框图和算法语句,是一个典型的算法案例.
变式训练
请以5次多项式函数为例说明秦九韶算法,并画出程序框图.
解:设f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0
首先,让我们以5次多项式一步步地进行改写:
f(x)=(a5x4+a4x3+a3x2+a2x+a1)x+a0
=((a5x3+a4x2+ a3x+a2)x+a1)x+a0
=(((a5x2+a4x+ a3)x+a2)x+a1)x+a0
=((((a5x+a4)x+ a3)x+a2)x+a1)x+a0.
上面的分层计算,只用了小括号,计算时,首先计算最内层的括号,然后由里向外逐层计算,直到最外层的括号,然后加上常数项即可.
程序框图如下图:
例2 已知n次多项式Pn(x)=a0xn+a1xn-1+…+an-1x+an,如果在一种算法中,计算(k=2,3,4,…,n)的值需要k-1次乘法,计算P3(x0)的值共需要9次运算(6次乘法,3次加法),那么计算P10(x0)的值共需要__________次运算.下面给出一种减少运算次数的算法:P0(x)=a0,Pk+1(x)=xPk(x)+ak+1(k=0,1,2,…,n-1).利用该算法,计算P3(x0)的值共需要6次运算,计算P10(x0)的值共需要___________次运算.
答案:65 20
点评:秦九韶算法适用一般的多项式f(x)=anxn+an-1xn-1+…+a1x+a0的求值问题.直接法乘法运算的次数最多可到达,加法最多n次.秦九韶算法通过转化把乘法运算的次数减少到最多n次,加法最多n次.
例3 已知多项式函数f(x)=2x5-5x4-4x3+3x2-6x+7,求当x=5时的函数的值.
解析:把多项式变形为:f(x)=2x5-5x4-4x3+3x2-6x+7
=((((2x-5)x-4)x+3)x-6)x+7.
计算的过程可以列表表示为:
最后的系数2 677即为所求的值.
算法过程:
v0=2;
v1=2×5-5=5;
v2=5×5-4=21;
v3=21×5+3=108;
v4=108×5-6=534;
v5=534×5+7=2 677.
点评:如果多项式函数中有缺项的话,要以系数为0的项补齐后再计算.
知能训练
当x=2时,用秦九韶算法求多项式f(x)=3x5+8x4-3x3+5x2+12x-6的值.
解法一:根据秦九韶算法,把多项式改写成如下形式:
f(x)=((((3x+8)x-3)x+5)x+12)x-6.
按照从内到外的顺序,依次计算一次多项式当x=2时的值.
v0=3;
v1=v0×2+8=3×2+8=14;
v2=v1×2-3=14×2-3=25;
v3=v2×2+5=25×2+5=55;
v4=v3×2+12=55×2+12=122;
v5=v4×2-6=122×2-6=238.
∴当x=2时,多项式的值为238.
解法二:f(x)=((((3x+8)x-3)x+5)x+12)x-6,
则f(2)=((((3×2+8)×2-3)×2+5)×2+12)×2-6=238.
拓展提升
用秦九韶算法求多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.
解:f(x)=((((((7x+6)+5)x+4)x+3)x+2)x+1)x
v0=7;
v1=7×3+6=27;
v2=27×3+5=86;
v3=86×3+4=262;
v4=262×3+3=789;
v5=789×3+2=2 369;
v6=2 369×3+1=7 108;
v7=7 108×3+0=21 324.
∴f(3)=21 324.
课堂小结
1.秦九韶算法的方法和步骤.
2.秦九韶算法的计算机程序框图.
作业
已知函数f(x)=x3-2x2-5x+8,求f(9)的值.
解:f(x)=x3-2x2-5x+8=(x2-2x-5)x+8=((x-2)x-5)x+8
∴f(9)=((9-2)×9-5)×9+8=530.
设计感想
古老的算法散发浓郁的现代气息,这是一节充满智慧的课.本节主要介绍了秦九韶算法.
通过对秦九韶算法的学习,对算法本身有哪些进一步的认识?
教师引导学生思考、讨论、概括,小结时要关注如下几点:(1)算法具有通用的特点,可以解决一类问题;(2)解决同一类问题,可以有不同的算法,但计算的效率是不同的,应该选择高效的算法;(3)算法的种类虽多,但三种逻辑结构可以有效地表达各种算法等等.
第3课时 案例3 进位制
导入新课
情境导入
在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.今天我们来学习一下进位制.
推进新课
新知探究
提出问题
(1)你都了解哪些进位制?
(2)举出常见的进位制.
(3)思考非十进制数转换为十进制数的转化方法.
(4)思考十进制数转换成非十进制数及非十进制之间的转换方法.
活动:先让学生思考或讨论后再回答,经教师提示、点拨,对回答正确的学生及时表扬,对回答不准确的学生提示引导考虑问题的思路.
讨论结果:
(1)进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;满六十进一,就是六十进制等等.也就是说:“满几进一”就是几进制,几进制的基数(都是大于1的整数)就是几.
(2)在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.
(3)十进制使用0~9十个数字.计数时,几个数字排成一行,从右起,第一位是个位,个位上的数字是几,就表示几个一;第二位是十位,十位上的数字是几,就表示几个十;接着依次是百位、千位、万位……
例如:十进制数3 721中的3表示3个千,7表示7个百,2表示2个十,1表示1个一.于是,我们得到下面的式子:
3 721=3×103+7×102+2×101+1×100.
与十进制类似,其他的进位制也可以按照位置原则计数.由于每一种进位制的基数不同,所用的数字个数也不同.如二进制用0和1两个数字,七进制用0~6七个数字.
一般地,若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式
anan-1…a1a0(k)(0<an<k,0≤an-1,…,a1,a0<k).
其他进位制的数也可以表示成不同位上数字与基数的幂的乘积之和的形式,如
110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20,
7 342(8)=7×83+3×82+4×81+2×80.
非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:
anan-1…a1a0(k)=an×kn+an-1×kn-1+…+a1×k+a0.
第一步:从左到右依次取出k进制数anan-1…a1a0(k)各位上的数字,乘以相应的k的幂,k的幂从n开始取值,每次递减1,递减到0,即an×kn,an-1×kn-1,…,a1×k,a0×k0;
第二步:把所得到的乘积加起来,所得的结果就是相应的十进制数.
(4)关于进位制的转换,教科书上以十进制和二进制之间的转换为例讲解,并推广到十进制和其他进制之间的转换.这样做的原因是,计算机是以二进制的形式进行存储和计算数据的,而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二进制数,再处理,显然运算后首次得到的结果为二进制数,同时计算机又把运算结果由二进制数转换成十进制数输出.
1°十进制数转换成非十进制数
把十进制数转换为二进制数,教科书上提供了“除2取余法”,我们可以类比得到十进制数转换成k进制数的算法“除k取余法”.
2°非十进制之间的转换
一个自然的想法是利用十进制作为桥梁.教科书上提供了一个二进制数据与16进制数据之间的互化的方法,也就是先由二进制数转化为十进制数,再由十进制数转化成为16进制数.
应用示例
思路1
例1 把二进制数110 011(2)化为十进制数.
解:110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20=1×32+1×16+1×2+1=51.
点评:先把二进制数写成不同位上数字与2的幂的乘积之和的形式,再按照十进制的运算规则计算出结果.
变式训练
设计一个算法,把k进制数a(共有n位)化为十进制数b.
算法分析:从例1的计算过程可以看出,计算k进制数a的右数第i位数字ai与ki-1的乘积ai·ki-1,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法.
算法步骤如下:
第一步,输入a,k和n的值.
第二步,将b的值初始化为0,i的值初始化为1.
第三步,b=b+ai·ki-1,i=i+1.
第四步,判断i>n是否成立.若是,则执行第五步;否则,返回第三步.
第五步,输出b的值.
程序框图如下图:
程序:
INPUT “a,k,n=”;a,k,n
b=0
i=1
t=a MOD 10
DO
b=b+t*k︿(i-1)
a=a\10
t=a MOD 10
i=i+1
LOOP UNTIL i>n
PRINT b
END
例2 把89化为二进制数.
解:根据二进制数“满二进一”的原则,可以用2连续去除89或所得商,然后取余数.具体计算方法如下:
因为89=2×44+1,44=2×22+0,
22=2×11+0,
11=2×5+1,
5=2×2+1,
2=2×1+0,
1=2×0+1,
所以
89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1
=2×(2×(2×(2×(22+1)+1)+0)+0)+1
=…=1×26+0×25+1×24+1×23+0×22+0×21+1×20
=1 011 001(2).
这种算法叫做除2取余法,还可以用下面的除法算式表示:
把上式中各步所得的余数从下到上排列,得到89=1 011 001(2).
上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法.
变式训练
设计一个程序,实现“除k取余法”.
算法分析:从例2的计算过程可以看出如下的规律:
若十制数a除以k所得商是q0,余数是r0,即a=k·q0+r0,则r0是a的k进制数的右数第1位数.
若q0除以k所得的商是q1,余数是r1,即q0=k·q1+r1,则r1是a的k进制数的左数第2位数.
……
若qn-1除以k所得的商是0,余数是rn,即qn-1=rn,则rn是a的k进制数的左数第1位数.
这样,我们可以得到算法步骤如下:
第一步,给定十进制正整数a和转化后的数的基数k.
第二步,求出a除以k所得的商q,余数r.
第三步,把得到的余数依次从右到左排列.
第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的k进制数.
程序框图如下图:
程序:
INPUT “a,k=”;a,k
b=0
i=0
DO
q=a\k
r=a MOD k
b=b+r*10︿i
i=i+1
a=q
LOOP UNTIL q=0
PRINT b
END
思路2
例1 将8进制数314 706(8)化为十进制数,并编写出一个实现算法的程序.
解:314 706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104 902.
所以,化为十进制数是104 902.
点评:利用把k进制数转化为十进制数的一般方法就可以把8进制数314 706(8)化为十进制数.
例2 把十进制数89化为三进制数,并写出程序语句.
解:具体的计算方法如下:
89=3×29+2,
29=3×9+2,
9=3×3+0,
3=3×1+0,
1=3×0+1,
所以:89(10)=10 022(3).
点评:根据三进制数满三进一的原则,可以用3连续去除89及其所得的商,然后按倒序的顺序取出余数组成数据即可.
知能训练
将十进制数34转化为二进制数.
分析:把一个十进制数转换成二进制数,用2反复去除这个十进制数,直到商为0,所得余数(从下往上读)就是所求.
解:
即34(10)=100 010(2)
拓展提升
把1 234(5)分别转化为十进制数和八进制数.
解:1 234(5)=1×53+2×52+3×5+4=194.
则1 234(5)=302(8)
所以,1 234(5)=194=302(8)
点评:本题主要考查进位制以及不同进位制数的互化.五进制数直接利用公式就可以转化为十进制数;五进制数和八进制数之间需要借助于十进制数来转化.
课堂小结
(1)理解算法与进位制的关系.
(2)熟练掌握各种进位制之间转化.
作业
习题1.3A组3、4.
设计感想
计算机是以二进制的形式进行存储和计算数据的,而一般我们传输给计算机的数据是十进制数据,因此计算机必须先将十进制数转换为二进制数,再处理,显然运算后首次得到的结果为二进制数,同时,计算机又把运算结果由二进制数转换成十进制数输出.因此学好进位制是非常必要的,另外,进位制也是高考的重点,本节设置了多种题型供学生训练,所以这节课非常实用.
1.3 算法案例
双基达标 ?限时20分钟?
1.利用秦九韶算法求P(x)=anxn+an-1xn-1+…+a1x+a0,当x=x0时P(x0)的值,需做加法和乘法的次数分别为 ( )
A.n,n B.n,
C.n,2n+1 D.2n+1,
解析 由秦九韶算法知P(x0)=(…((anx0+an-1)x0+an-2)x0+…+a1)x0+a0,上式共进行了n次乘法运算和n次加法运算.
答案 A
2.两个二进制数101(2)与110(2)的和用十进制数表示为 ( ).
A.12 B.11 C.10 D.9
解析 101(2)=22+0×21+1×20=5,110(2)=1×22+1×21+0×20=6.
答案 B
3.4 830与3 289的最大公约数为 ( ).
A.23 B.35 C.11 D.13
解析 4 830=1×3 289+ 1 541;
3 289=2×1 541+207;
1 541=7×207+92;
207=2×92+23;92=4×23;
∴23是4 830与3 289的最大公约数.
答案 A
4.用更相减损术求36与134的最大公约数,第一步应为________.
解析 ∵36与134都是偶数,
∴第一步应为:先除以2,得到18与67.
答案 先除以2,得到18与67
5.将八进制数127(8)化成二进制数为________(2).
解析 将127(8)化为十进制:127(8)=1×82+2×8+7=64+16+7=87,再将十进制数87化为二进制数为:
∴87=1010111(2).
答案 1010111
6.用秦九韶算法求多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.
解 f(x)=((((((7x+6)x+5)x+4)x+3)x+2)x+1)x,
所以v0=7
v1=7×3+6=27
v2=27×3+5=86
v3=86×3+4=262
v4=262×3+3=789
v5=789×3+2=2 369
v6=2 369×3+1=7 108
v7=7 108×3=21 324,
故x=3时,多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x的值为21 324.
综合提高 ?限时25分钟?
7.用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2,当x=4时的值时,先算的是 ( ).
A.4×4=16 B.7×4=28
C.4×4×4=64 D.7×4+6=34
解析 因为f(x)=anxn+an-1xn-1+…+a1x+a0
=(…((anx+an-1)x+an-2)x+…+a1)x+a0,
所以用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2当x=4时的值时,先算的是7×4+6=34.
答案 D
8.下列各数中最小的数是 ( ).
A.101 010(2) B.210(8)
C.1 001(16) D.81
解析 101010(2)=1×25+0×24+1×23+0×22+1×21+0×20=42.
210(8)=2×82+1×81+0×80=136,
1001(16)=1×163+0×162+0×16+1×160=4 097,故选A.
答案 A
9.用更相减损术求459和357的最大公约数,需要减法的次数为________.
解析 使用更相减损术有:459-357=102;
357-102=255;255-102=153;153-102=51;
102-51=51,共作了5次减法.
答案 5
10.用秦九韶算法求函数f(x)=1+2x+x2-3x3+2x4,当x=-1的值时,v2的结果是________.
解析 此题的n=4,a4=2,a3=-3,a2=1,a1=2,a0=1,
由秦九韶算法的递推关系式(k=1,2,…,n),得v1=v0x+a3=2×(-1)-3=-5.
v2=v1x+a2=-5×(-1)+1=6.
答案 6
11.把“三进制”数2 101 211(3)转化为“八进制”的数.
解 先将三进制化为十进制,再将十进制化为八进制.
2 101 211(3)=2×36+1×35+1×33+2×32+1×31+1×30=1 458+243+27+18+3+1=1 750(10),
所以2 101 211(3)=3 326(8).
12.(创新拓展)用秦九韶算法计算多项式f(x)=x6-12x5+60x4-160x3+240x2-192x+64当x=2时的值.
解 将f(x)改写为
f(x)=(((((x-12)x+60)x-160)x+240)x-192)x+64
由内向外依次计算一次多项式当x=2时的值,
v0=1,
v1=1×2-12=-10,
v2=-10×2+60=40,
v3=40×2-160=-80,
v4=-80×2+240=80,
v5=80×2-192=-32,
v6=-32×2+64=0.
∴f(2)=0,即x=2时,原多项式的值为0.
课件23张PPT。【课标要求】
1.理解辗转相除法与更相减损术的含义,了解其执行过程.
2.理解秦九韶算法的计算过程,并了解它提高计算效率的实质.
3.理解进位制的概念,能进行不同进位制间的转化.
4.了解进位制的程序框图和程序.
【核心扫描】
1.三种算法的原理及应用.(重难点)
2.三种算法的框图表示及程序.(难点)
3.不同进位制之间的相互转化.(重点)
4.秦九韶算法中多项式的改写.(易错点)
1.3 算法案例辗转相除法
(1)辗转相除法,又叫欧几里得算法,是一种求两个正整数的___________的古老而有效的算法.
(2)辗转相除法的算法步骤
第一步,给定________________.
第二步,计算___________________.
第三步, ____________.
第四步,若r=0,则m、n的最大公约数等于___;否则,返回________.自学导引1.最大公约数两个正整数m,nm除以n所得的余数rm=n,n=rm第二步更相减损术
第一步,任意给定两个正整数,判断它们是否都是_____.若是,用_______;若不是,执行_______ .
第二步,以_____的数减去_____的数,接着把所得的差与_____的数比较,并以大数减小数,继续这个操作,直到所得的数_____为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.
任意给定两个正整数,用辗转相除法和更相减损术是否都可以求它们的最大公约数?
提示 是.更相减损术与辗转相除法都能在有限步内结束,故均可以用来求两个正整数的最大公约数.
2.偶数2约简第二步较小较小相等较大秦九韶算法
把一个n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0改写成如下形式:
(…((anx+an-1)x+an-2)x+…+a1)x+a0,
求多项式的值时,首先计算_____________一次多项式的值,即v1=__________,然后由内向外逐层计算一次多项式的值,即
v2=__________,
v3=__________,
…
vn=__________.
这样,求n次多项式f(x)的值就转化为求________________的值.3.最内层括号内anx+an-1v1x+an-2v2x+an-3vn-1x+a0n个一次多项式进位制
进位制是人们为了_____和_________而约定的记数系统,“满k进一”就是k进制,k进制的基数是k.
把十进制转化为k进制数时,通常用除k取余法.
不同进制间的数不能比较大小,对吗?
提示 不对.不同的进位制是人们为了计数和运算方便而约定的记数系统,不同进位制的数照样可比较大小,不过一般要转化到十进制下比较大小更方便一些.
4.计数运算方便1.辗转相除法与更相减损术的区别和联系
名师点睛秦九韶算法
(1)特点:通过一次式的反复计算,逐步得出高次多项式的值,对于一个n次多项式,只需做n次乘法和n次加法即可.
(2)算法步骤:
设Pn(x)=anxn+an-1xn-1+…+a1x+a0,将其改写为
Pn(x)=(anxn-1+an-1xn-2+…+a1)x+a0
=((anxn-2+an-1xn-3+…+a2)x+a1)x+a0
=(…((anx+an-1)x+an-2)x+…+a1)x+a0.
第一步:计算最内层anx+an-1的值,将anx+an-1的值赋给一个变量v1(为方便将an赋予变量v0);
第二步:计算(anx+an-1)x+an-2的值,可以改写为v1x+an-2,将v1x+an-2的值赋给一个变量v2;2.依次类推,即每一步的计算之后都赋予一个新值vk,即从最内层的括号到最外层.
括号的值依次赋予变量v1,v2,…,vk,…,vn,第n步所求值vn=vn-1x+a0即为所求多项式的值.
(3)秦九韶算法有以下几个优点:
①大大减少了乘法的次数,使计算量减小.在计算机上做一次乘法所需要的时间是做加法、减法的几倍到十几倍,减少做乘法的次数也就加快了计算的速度;
②规律性强,便于利用循环语句来实现算法;
③避免了对自变量x单独做幂的计算,每次都是计算一个一次多项式的值,从而可以提高计算的精度.
关于进位制应注意的问题
(1)十进制的原理是满十进一.一个十进制正整数N可以写成an×10n+an-1×10n-1+…+a1×101+a0×100的形式,其中an,an-1,…,a1,a0都是0至9中的数字,且an≠0.例如365=3×102+6×10+5.
(2)一般地,k进制数的原理是满k进一,k进制数一般在右下角处标注(k),以示区别.例如270(8)表示270是一个8进制数.但十进制一般省略不写.
(3)在k进制中,有:
①有k个不同的数字符号,即0,1,2,3,…,(k-1);
②“逢k进一”,即每位数计满k后向高位进一.
一个k进位制的正整数就是各位数码与k的方幂的乘积的和,其中幂指数等于相应数码所在位数(从右往左数)减1.
例如230 451(k)=2×k5+3×k4+0×k3+4×k2+5×k+1.
3.题型一 求两个正整数的最大公约数 分别用辗转相除法和更相减损术求261和319的最大公约数.
[思路探索] 使用辗转相除法可依据m=nq+r,反复执行直到余数为0;更相减损术则是根据m-n=r,反复执行,直到n=r为止.
解 法一 (辗转相除法)
319÷261=1(余58),
261÷58=4(余29),
58÷29=2(余0),
所以319与261的最大公约数为29.【例1】法二 (更相减损术)
319-261=58,
261-58=203,
203-58=145,
145-58=87,
87-58=29,
58-29=29,
29-29=0,
所以319与261的最大公约数是29.
规律方法 (1)利用辗转相除法求给定的两个数的最大公约数,即利用带余除法,用数对中较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的数对,再利用带余除法,直到大数被小数除尽,则这时的较小数就是原来两个数的最大公约数.
(2)利用更相减损术求两个正整数的最大公约数的一般步骤是:首先判断两个正整数是否都是偶数.若是,用2约简.也可以不除以2,直接求最大公约数,这样不影响最后结果. 用辗转相除法求80与36的最大公约数,并用更相减损术检验你的结果.
解 80=36×2+8,
36=8×4+4,8=4×2+0,
即80与36的最大公约数是4.
验证:
80÷2=40 36÷2=18
40÷2=20 18÷2=9
20—9=11 11-9=2
9-2=7 7-2=5
5-2=3 3-2=1
2-1=1 1×2×2=4
所以80与36的最大公约数为4.【变式1】 将七进制数235(7)转化为八进制.
解 235(7)=2×72+3×71+5=124,利用除8取余法(如图所示),所以124=174(8).
所以235(7)转化为八进制数为174(8).题型二 进位制之间的转化【例2】规律方法 对于非十进制数之间的互化,通常是把这个数先转化为十进制数,然后再利用除k取余法,把十进制数转化为k进制数.而在使用除k取余法时要注意以下几点:(1)必须除到所得的商是0为止;(2)各步所得的余数必须从下到上排列;(3)切记在所求数的右下角标明基数. 把下列各数转换成十进制数.
(1)101 101(2);(2)2 102(3);(3)4 301(6).
解 (1)101 101(2)=1×25+0×24+1×23+1×22+0×2+1=45.
(2)2 102(3)=2×33+1×32+2=65.
(3)4 301(6)=4×63+3×62+1=973.【变式2】 用秦九韶算法求f(x)=3x5+8x4-3x3+5x2+12x-6,当x=2的值.题型三 秦九韶算法在多项式中的应用【例3】[规范解答] 根据秦九韶算法,把多项式改写成如下形式:
f(x)=((((3x+8)x-3)x+5)x+12)x-6,按照从内到外的顺序,依次计算一次多项式当x=2时的值. (2分)
v0=3,
v1=v0×2+8=3×2+8=14, (4分)
v2=v1×2-3=14×2-3=25, (6分)
v3=v2×2+5=25×2+5=55, (8分)
v4=v3×2+12=55×2+12=122,
v5=v4×2-6=122×2-6=238, (10分)
所以当x=2时,多项式的值为238. (12分)【题后反思】 (1)先将多项式写成一次多项式的形式,然后运算时从里到外,一步一步地做乘法和加法即可.这样比直接将x=2代入原式大大减少了计算量.若用计算机计算,则可提高运算效率.
(2)注意:当多项式中n次项不存在时,可将第n次项看作0·xn.
用秦九韶算法计算f(x)=6x5-4x4+x3-2x2-9x,需要加法(或减法)与乘法运算的次数分别为 ( ).
A.5,4 B.5,5
C.4,4 D.4,5
解析 n次多项式需进行n次乘法;若各项均不为零,则需进行n次加法,缺一项就减少一次加法运算.f(x)中无常数项,故加法次数要减少一次,为5-1=4.故选D.
答案 D【变式3】 已知f(x)=x5+2x4+3x3+4x2+5x+6,用秦九韶算法求这个多项式当x=2时的值时,做了几次乘法?几次加法?
[错解] 根据秦九韶算法,把多项式改写成如下形式f(x)=((((x+2)x+3)x+4)x+5)x+6.
按照从内到外的顺序,依次计算一次多项式当x=2时的
值:v1=2+2=4;v2=2v1+3=11;v3=2v2+4=26;v4=2v3+5=57;v5=2v4+6=120.
显然,在v1中未做乘法,只做了1次加法;在v2,v3,v4,v5中各做了1次加法,1次乘法.因此,共做了4次乘法,5次加法.误区警示 对秦九韶算法中的运算次数理解错误【示例】 在v1中虽然“v1=2+2=4”,而计算机还是做了1次乘法“v1=2×1+2=4”.因为用秦九韶算法计算多项式f(x)=anxn+an-1xn-1+…+a1x+a0当x=x0时的值时,首先将多项式改写成f(x)=(…(anx+an-1)x+…+a1)x+a0,然后再计算v1=anx+an-1,v2=v1x+an-2,v3=v2x+an-3,…,vn=vn-1x+a0.无论an是不是1,这次的乘法都是要进行的.
[正解] 由上分析可知,共做了5次乘法,5次加法.单击此处进入 活页规范训练