【成才之路】高中数学 算法案例第2课时秦九韶算法与进位制学案课件 新人教A版必修3
- 格式:ppt
- 大小:804.00 KB
- 文档页数:61
1.3 算法案例(第二课时)秦九韶算法一、学习目标:【读一读学习要求,目标更明确】1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质;2.能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序.二、学习方法:【看一看学法指导,学习更灵活】通过对“辗转相除法、更相减损之术、秦九韶算法”的学习,更好的理解将要解决问题“算法化”的思维方法,理解将抽象的数学思维转变为具体的步骤化的思维方法,提高逻辑思维能力,体会中国古代数学对世界数学发展的贡献,增强爱国主义情怀.三、学习重难点:秦九韶算法的特点,对秦九韶算法的先进性理解四、合作探究知识探究(一):秦九韶算法的基本思想问题2:我们把多项式变形为()((((1)1)1)1)1f x x x x x x =+++++再统计一下计算当5=x 时的值时需要的种类和计算次数分别是什么?,问题3:怎样求多项式5432()254367f x x x x x x =--+-+当5=x 时的值呢? 对多项式进行怎样的变形?思考:如何用秦九韶算法完成一般多项式1110()n n n n f x a x a x a x a --=++++的求值问题?问题4:在利用秦九韶算法计算n 次多项式当0x x =时需要多少次乘法计算和多少次加法计算?知识探究(二):秦九韶算法的程序设计(1)秦九韶算法将求n 次多项式的值转化为求n 个一次多项式的值,整个过程只需n 次乘法运算和n 次加法运算;观察上述n 个一次式,可发出k v 的计算要用到1k v -的值,若令0n v a =,可得到下列递推公式:01,(1,2,,)n k k n k v a v v x a k n --=⎧⎨=+=⎩. 这是一个反复执行的步骤,因此可用循环结构来实现.试画出程序框图,并设计出程序;(2)程序框图: (3)程序设计:五、理论迁移 例1 已知一个5次多项式为5432()42 3.5 2.6 1.70.8f x x x x x x =++-+-用秦九韶算法求这个多项式当5=x 时的值。
时案例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)=a n x n+a n-1x n-1+…+a1x+a0改写成如下形式:f(x)=a n x n+a n-1x n-1+…+a1x+a0=(a n x n-1+a n-1x n-2+…+a1)x+ a0=((a n x n-2+a n-1x n-3+…+a2)x+a1)x+a0=…=(…((a n x+a n-1)x+a n-2)x+…+a1)x+a0.求多项式的值时,首先计算最内层括号内一次多项式的值,即v1=a n x+a n-1,然后由内向外逐层计算一次多项式的值,即v2=v1x+a n-2,v3=v2x+a n-3,…v n=v n-1x+a0,这样,求n次多项式f(x)的值就转化为求n个一次多项式的值.上述方法称为秦九韶算法.直到今天,这种算法仍是多项式求值比较先进的算法.(3)计算机的一个很重要的特点就是运算速度快,但即便如此,算法好坏的一个重要标志仍然是运算的次数.如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论的算法.(三)应用示例例1 已知一个5次多项式为f (x )=5x 5+2x 4+3.5x 3-2.6x 2+1.7x-0.8,用秦九韶算法求这个多项式当x=5时的值.解:根据秦九韶算法,把多项式改写成如下形式:f(x)=((((5x+2)x+3.5)x-2.6)x+1.7)x-0.8,按照从内到外的顺序,依次计算一次多项式当x=5时的值:v 0=5;v 1=5×5+2=27;v 2=27×5+3.5=138.5;v 3=138.5×5-2.6=689.9;v 4=689.9×5+1.7=3 451.2;v 5=3 415.2×5-0.8=17 255.2;所以,当x=5时,多项式的值等于17 255.2.算法分析:观察上述秦九韶算法中的n 个一次式,可见v k 的计算要用到v k -1的值,若令v 0=a n ,我们可以得到下面的公式:⎩⎨⎧=+==--).,,2,1(,10n k a x v v a v k n k kn Λ 这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现.算法步骤如下:第一步,输入多项式次数n 、最高次的系数a n 和x 的值.第二步,将v 的值初始化为a n ,将i 的值初始化为n-1.第三步,输入i 次项的系数a i .第四步,v=vx+a i ,i=i-1.第五步,判断i 是否大于或等于0.若是,则返回第三步;否则,输出多项式的值v. 程序框图如下图:程序:INPUT “n=”;nINPUT “an=”;aINPUT “x=”;xv=ai=n-1WHILE i>=0PRINT “i=”;iINPUT “ai=”;av=v*x+ai=i-1WENDPRINT vEND点评:本题是古老算法与现代计算机语言的完美结合,详尽介绍了思想方法、算法步骤、程序框图和算法语句,是一个典型的算法案例.变式训练请以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次多项式P n(x)=a0x n+a1x n-1+…+a n-1x+a n,如果在一种算法中,计算k x0(k=2,3,4,…,n)的值需要k-1次乘法,计算P3(x0)的值共需要9次运算(6次乘法,3次加法),那么计算P10(x0)的值共需要__________次运算.下面给出一种减少运算次数的算法:P0(x)=a0,P k+1(x)=xP k(x)+a k+1(k=0,1,2,…,n-1).利用该算法,计算P3(x0)的值共需要6次运算,计算P10(x0)的值共需要___________次运算.答案:65 20点评:秦九韶算法适用一般的多项式f(x)=a n x n+a n-1x n-1+…+a1x+a0的求值问题.直接法乘法运算的次数最多可到达2)1(nn,加法最多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)xv0=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.3 算法案例第2课时 秦九韶算法与进位制学习目标XUEXIMUBIAO1.了解秦九韶算法.2.了解生活中的各种进位制,了解计算机内部运算为什么选择二进制.3.会用除k取余法把十进制转换为各种进位制,并理解其中的数学规律.NEIRONGSUOYIN内容索引自主学习题型探究达标检测1自主学习PART ONE知识点一 秦九韶算法1.求n 次多项式的值的算法,有一种比较好的算法叫秦九韶算法.2.秦九韶算法的一般步骤:把一个n 次多项式f (x )=a n x n +a n -1x n -1+…+a 1x +a 0改写成如下形式:(…((a n x +a n -1)x +a n -2)x +…+a 1)x +a 0,求多项式的值时,首先计算________一次多项式的值,即v 1= ,然后由内向外逐层计算一次多项式的值,即v 2=,v 3= ,…,v n = ,这样,求n 次多项式f (x )的值就转化为求的值.最内层括n 个一次多项式号内a n x +a n -1v 1x +a n -2v 2x +a n -3v n -1x +a 0知识点二 进位制若k是一个大于1的整数,那么以k为基数的k进制数可以表示为一串数字连写在一起的形式a n a n-1…a1a0(k)(a n,a n-1,…,a1,a0∈N,0<a n<k,0≤a n-1,…,a1,a0<k).为了区分不同的进位制,常在数的右下角标明基数,如二进制数10(2),六进制数341(6),十进制数一般不标注基数.思考 59分59秒再过1秒是多少时间?答案 1小时.上述计时法遵循的是满60进一,称为六十进制.类比给出k进制的概念.“满k进一”就是k进制,k进制的基数是k.知识点三 进制间的转化1.一般地,将k进制数a n a n-1…a1a0(k)转化为十进制:a n a n-1…a1a0(k)=a n×k n+a n-1×k n-1+…+a1×k1+a0×k0.2.把十进制的数化为k进制的数的方法是:把十进制数除以k,余数为k进制的右数第一位数.把商再除以k,余数为k进制右数第二位数;依次除以k,直至商为0.这个方法称为除k取余法.1.二进制数中可以出现数字3.( )2.把十进制数转化成其它进制数的方法是除k 取余法.( )3.不同进制数之间可以相互转化.( )思考辨析 判断正误SIKAOBIANXIPANDUANZHENGWU√√×2题型探究PART TWO题型一 秦九韶算法的应用例1 用秦九韶算法求多项式f(x)=x5+5x4+10x3+10x2+5x+1当x=-2时的值.解 f(x)=x5+5x4+10x3+10x2+5x+1=((((x+5)x+10)x+10)x+5)x+1.当x=-2时,有v0=1;v1=v0x+a4=1×(-2)+5=3;v2=v1x+a3=3×(-2)+10=4;v3=v2x+a2=4×(-2)+10=2;v4=v3x+a1=2×(-2)+5=1;v5=v4x+a0=1×(-2)+1=-1.故f(-2)=-1.反思感悟 (1)先将多项式写成一次多项式的形式,然后运算时从里到外,一步一步地做乘法和加法即可.这样比直接将x=-2代入原式大大减少了计算量.若用计算机计算,则可提高运算效率.(2)注意:当多项式中n次项不存在时,可将第n次项看作0·x n.跟踪训练1 用秦九韶算法计算多项式f(x)=x6-12x5+60x4-160x3+240x2-192x+64当x=2时的值.解 根据秦九韶算法,把多项式改写成如下形式: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.所以当x=2时,多项式的值为0.题型二 k进制化为十进制例2 二进制数110 011(2)化为十进制数是什么数?解 110 011(2)=1×25+1×24+0×23+0×22+1×21+1×20=32+16+2+1=51.反思感悟 将k进制数a n a n-1…a1a0(k)化为十进制数的方法:把k进制数a n a n-1…a1a0(k)写成各数位上的数字与基数k的幂的乘积之和的形式,然后计算出结果即为对应的十进制数.跟踪训练2 (1)把二进制数1 110 011(2)化为十进制数.解 1 110 011(2)=1×26+1×25+1×24+0×23+0×22+1×21+1×20=115.(2)将8进制数314 706(8)化为十进制数.解 314 706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104 902.所以,化为十进制数是104 902.题型三 十进制化k 进制解 算式如图,例3 将十进制数458分别转化为四进制数和六进制数.则458=13 022(4)=2 042(6).反思感悟 十进制数化为k进制数的思路为跟踪训练3 把89化为二进制数.解 算式如图,则89=1 011 001(2).典例 用秦九韶算法求多项式f (x )=x 5+0.11x 3-0.15x -0.04当x =0.3时的值.核心素养之数学运算HEXINSUYANGZHISHUXUEYUNSUAN 秦九韶算法求多项式的值解 将f (x )写为f (x )=((((x +0)·x +0.11)x +0)x -0.15)x -0.04.按从内到外的顺序,依次计算多项式的值:v 0=1,v 1=1×0.3+0=0.3,v 2=0.3×0.3+0.11=0.2,v 3=0.2×0.3+0=0.06,v 4=0.06×0.3-0.15=-0.132,v 5=-0.132×0.3-0.04=-0.079 6.∴当x =0.3时,f (x )的值为-0.079 6.素养评析 (1)当多项式中出现空项时,利用秦九韶算法求多项式的值,必须补上系数为0的相应项.这是本题的易错点.(2)理解运算对象即求多项式的值,掌握运算法则即秦九韶算法,这些均是数学核心素养之数学运算的具体体现.3达标检测PART THREE1.已知175(r)=125(10),则r的值为A.1B.5√C.3 D.8解析 ∵1×r2+7×r1+5×r0=125,∴r2+7r-120=0,∴r=8或r=-15(舍去),∴r=8,故选D.2.用秦九韶算法计算多项式f(x)=6x6+5x5+4x4+3x3+2x2+x+7在x=0.4时的值时,需做加法和乘法的次数的和为A.10B.9√C.12D.8解析 f(x)=(((((6x+5)x+4)x+3)x+2)x+1)x+7,∴做加法6次,乘法6次,∴6+6=12(次),故选C.3.用秦九韶算法求多项式f(x)=x4+2x3+3x2+x+1当x=2时的值时,第一次运算的是A.1×2B.24√C.2+1D.1×2+2解析 因为f(x)=(((x+2)x+3)x+1)x+1,据由内到外的运算规律可知先运算的是1×2+2.4.下列各数中,最小的数是A.85(9)B.210(6)√C.1 000(4)D.111 111(2)解析 85(9)=8×9+5=77,210(6)=2×62+1×6+0=78,1 000(4)=1×43=64,111 111(2)=1×25+1×24+1×23+1×22+1×2+1=63.故最小的是63.5.(1)将二进制数 (2)转化成十进制数;1611111⋅⋅⋅个解 (2)=1×215+1×214+…+1×21+1×20=216-1.1611111⋅⋅⋅ 个(2)将53(8)转化为二进制数.解 先将八进制数53(8)转化为十进制数:53(8)=5×81+3×80=43;再将十进制数43转化为二进制数的算法如图.所以53(8)=101 011(2).课堂小结KETANGXIAOJIE1.要把k进制数化为十进制数,首先把k进制数表示成不同位上数字与k的幂的乘积之和,其次按照十进制的运算规则计算和.2.十进制数化为k进制数(除k取余法)的步骤:3.用秦九韶算法求多项式f(x)当x=x0时的值的思路为(1)改写;(2)计算(3)结论f(x0)=v n.。