高二数学必修三教案:§1.3算法案例(秦九韶算法)
1.3算法案例-秦九韶算法教学设计
1.3算法案例(二)__秦九韶算法一、内容及其解析本节的教学内容是算法案例中的秦九韶算法,它是求一元多项式的值的一种方法.在初中,学生已经学习了多项式的有关知识,那里是把多项式看作代数式.因此在本段内容的教学之前,应当先向学生说明,这里是函数的观点考察多项式,因此,求自变量取某个实数时的函数值问题,即求多项式的值就是一个常规问题.二、教学目标及其解析目标定位知识与技能:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质.过程与方法:模仿秦九韶计算方法,体会古人计算构思的巧妙.了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用.情感态度与价值观目标:通过对秦九韶算法的学习,了解中国古代数学对世界数学发展的贡献,充分认识到我国文化历史的悠久.目标解析1 秦九韶算法是我国南宋数学家秦九韶在他的代表作《数书九章》中提出的一种用于计算一元n 次多项式的值的方法.三、问题诊断分析在本节主要存在的问题是学生不能对秦九韶算法的先进性及其程序设计的理解,所以教师要强调当多项式的次数增大时,此种方法的先进性就体现出来了,所以教师要找到规律,让学生体会此种解法的先进性.四、教学支持条件分析的一般模式在本节课的教学中准备使用多媒体辅助教学.五、教学过程设计问题一 什么事了解秦九韶算法?小问题1 怎样求多项式1)(2345+++++=x x x x x x f 当x=5时的值呢?(设计意图:通过具体的例子引入秦九韶算法.)结论:第一种一共用了10次乘法运算,5次加法运算.而第二种一共用了5次乘法运算,5次加法运算.小问题2 用秦九韶算法求n 次多项式0111...)(a x a x a x a x f n n n n ++++=--当0x x =(0x 是任意实数)时的值,需要多少次乘法运算,多少次加法运算?小问题 3 如何用秦九韶算法完成一般多项式1110()n n n n f x a x a x a x a --=++++的求值问题?要求多项式的值,我们可以把它改写成:11101210()(()))n n n n n n n f x a x a x a x a a x a x a x a x a ----=++++=+++++.首先计算最内层括号内一次多项式的值,即11n n v a x a -=+,然后由内向外逐层计算一次多项式的值,即212n v v x a -=+,323n v v x a -=+,,10n n v v x a -=+.例题1 (课本第38页例2)(设计意图:从实例到一般,先总结实例进而引申到一般) 变式巩固 用秦九韶算法求多项式1432)(2367+-+-=x x x x x f 当x=2时的函数值.小问题4 你是怎么理解秦九韶算法的?结论:秦九韶算法将求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 --=⎧⎨=+=⎩. 这是一个反复执行的步骤,因此可用循环结构来实现.【程序框图】:六 目标检测1、利用秦九韶算法求多项式1153723+-+x x x 在23=x 的值时,在运算中下列哪个值用不到( )A 、164B 、3767C 、86652D 、851692、利用秦九韶算法求多项式1352.75.38123)(23456-++-++=x x x x x x x f 在2=x 的值,写出详细步骤.七 配餐作业A 组②秦九韶算法计算多项式f(x)=12+35x-8x 2+79x 3+6x 4+5x 5+3x 6,当x=-4时的值时,υ3的值为( )A .-845B .220C .-57D .34③用秦九韶算法,求当x=2时,f(x)=x 5-5x 4+x 3-1的函数值.B 组1.秦九韶算法与直接计算相比较,下列说法错误的是( )A 、秦九韶算法与直接计算相比较,大大减少了乘法的次数,使计算量减少,并且逻辑结构简单.B 、秦九韶算法减少了做乘法的次数,在计算机上也就加快了计算的速度.C 、秦九韶算法减少了做乘法的次数,在计算机上也就降低了计算的速度.D 、秦九韶算法避免对自变量x 单独做幂的计算,而是与系数一起逐次增长幂次,从而可提高计算的精度.2.用秦九韶算法和直接算法求当0x x =时()654323126016024019264f x x x x x x x =-+-+-+的值,做的乘法次数分别为( )A.6,20B.7,20C.7,21D.6,21C 组求15.033.016.041.083.0)(2345+++++=x x x x x x f 当x=5时的值.八、教学反思1、学生还是不会分析运算次数的问题,应该给学生详细讲解.2、学生在多项式 11101210()(()))n n n n n n n f x a x a x a x a a x a x a x a x a ----=++++=+++++按照秦九韶算法写成标准形式是容易出错,且速度很慢,应教会学生快速的写法及检验方法.3、应多给学生介绍一些有关秦九韶算法的背景知识,这样更能吸引学生的注意力和学习兴趣,另外介绍历史名人的大致成就,扩大学生的文化视野.。
1.3.2算法案例(秦九韶算法)
学生交流、补充回答自学指导中的问题,教师进行补充及纠正总结,引导学生加强对知识的理解深度。
1.强调利用常规自然的运算方法,运算量大,若用前面的计算结果,直接计算后面的式子,可以减少运算量,提高运算效率。
2.强调作为常识性的知识,让学生了解到计算机进行乘法运算比加法运算花的时间要长的多,故而在程序编写中,需要进行运算,尽量使用加法。
3.让学生明确秦九韶算法的作用和意义。
4.通过交流关于秦九韶的简介,突破本节课的情感态度与价值观目标,教师鼓励学生要增强学习数学的信心。附:
秦九韶(公元1202-1261),字道古,安岳人。秦九韶与李冶、杨辉、朱世杰并称宋元数学四大家。其父秦季栖,进士出身,官至上部郎中、秘书少监。秦九韶聪敏勤学。宋绍定四年(1231),秦九韶考中进士,先后担任县尉、通判、参议官、州守、同农、寺丞等职。先后在湖北、安徽、江苏、浙江等地做官,1261年左右被贬至梅州(今广东梅县),不久死于任所。他在政务之余,对数学进行虔心钻研,并广泛搜集历学、数学、星象、音律、营造等资料,进行分析、研究。宋淳祜四至七年(1244至1247),他在为母亲守孝时,把长期积累的数学知识和研究所得加以编辑,写成了闻名的巨著《数学九章》,并创造了“大衍求一术”。这不仅在当时处于世界领先地位,在近代数学和现代电子计算设计中,也起到了重要作用,被称为“中国剩余定理”。他所论的“正负开方术”,被称为“秦九韶程序”。现在,世界各国从小学、中学到大学的数学课程,几乎都接触到他的定理、定律和解题原则。秦九韶在数学方面的研究成果,比英国数学家取得的成果要早800多年。秦九韶字道古.普州安岳(今四川安岳)人.南宋嘉泰二年(1202年)生;约景定二年(1261年)卒于梅州(今广东梅县).
示标
1.学会用秦九韶算法求多项式的值。
2019-2020学年数学高中人教A版必修3学案:1.3算法案例 第2课时 Word版含解析
第一章算法初步1.3算法案例1.3算法案例(第2课时)——秦九韶算法学习目标1.学习秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质.2.模仿秦九韶计算方法,体会古人计算构思的巧妙.3.通过对秦九韶算法的学习,充分认识到我国文化历史的悠久.合作学习一、设计问题,创设情境我们已经学了多项式的计算,下面我们计算一下多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值,并统计所做的计算的种类及计算次数.根据我们的计算统计可以得出我们共需要次乘法运算,次加法运算.我们把多项式变形为f(x)=((((x+1)x+1)x+1)x+1)x+1,再统计一下计算当x=5时的值时需要的计算次数,可以得出仅需次乘法和次加法运算即可得出结果.显然少了次乘法运算.这种算法就叫秦九韶算法.二、信息交流,揭示规律秦九韶计算多项式的方法【例1】已知一个5次多项式为f(x)=4x5+2x4+3.5x3-2.6x2+1.7x-0.8,用秦九韶算法求这个多项式当x=5时的值.思考:例1计算时需要多少次乘法计算?多少次加法计算?三、运用规律,解决问题利用秦九韶算法求f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.四、变式训练,深化提高【例2】设计利用秦九韶算法计算多项式f(x)=a n x n+a n-1x n-1+a n-2x n-2+…+a1x+a0的值的程序框图.练习:依据例2的程序框图编写程序.五、反思小结,观点提炼1.本节课我们学习了哪些知识内容?2.你认为秦九韶算法的原理是什么?3.秦九韶算法的程序设计用到了什么逻辑结构?布置作业课本P48习题1.3A组第2题.参考答案一、设计问题,创设情境10,5,4,5,6.二、信息交流,揭示规律f(x)=a n x n+a n-1x n-1+a n-2x n-2+…+a1x+a0=(a n x n-1+a n-1x n-2+a n-2x n-3+…+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个一次多项式的值.上述方法称为秦九韶算法. 【例1】解:根据秦九韶算法,把f(x)改写为f(x)=((((4x+2)x+3.5)x-2.6)x+1.7)x-0.8.按照从内到外的顺序,依次计算一次多项式当x=5时的值:v0=4;v1=4×5+2=22;v2=22×5+3.5=113.5;v3=113.5×5-2.6=564.9;v4=564.9×5+1.7=2 826.2;v5=2 826.2×5-0.8=14 130.2.所以,当x=5时,多项式的值等于14 130.2.思考:需要5次乘法,5次加法.三、运用规律,解决问题解: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.四、变式训练,深化提高【例2】解:程序框图如下:INPUT“n=”;nINPUT“an=”;aINPUT“x=”;xv=ai=n-1WHILE i>=0PRINT“i=”;i INPUT“ai=”;av=v x+ai=i-1WENDPRINT vEND五、反思小结,观点提炼略。
高中数学1.3《算法案例---秦九韶算法》教案人教版必修3A
〔教案〕 1.3 算法案例――-秦九韶算法
教学目标:
(1)在学习中国古代数学中的算法案例的同时,进一步体会算法的特点。
(2)体会中国古代数学对世界数学发展的贡献。
教学重点和难点
(1)重点:理解秦九韶算法的思想。
(2)难点:用循环结构表示算法的步骤。
教学基本流程
(1)设计算法,求具体多项式的值
(2)改进算法,提高运算效率
(3)介绍秦九韶算法,求一般多项式的值
(4)用循环结构表示秦九韶算法的关键步骤
(5)对秦九韶算法和算法本身的特点进行小结
教学情景设计
一、新课引入
在数学的发展史上,从公元前2、3世纪公元14世纪,中国
的数学虽有过高潮,也有过低落,但一直走在世界的前列,是世界数学的中心。
中国古代数学对世界数学发展有着不可磨灭的贡献。
秦九韶算法就是中国古代数学的一枝奇葩。
今天这节课我们领略秦九韶算法的魅力。
二、问题设计。
高二数学必修3:1.3 算法案例 教案2
1.3 算法案例[学习目标导航]学习提示1. 通过对中国古代算法研究的学习,了解中国古代伟大的文化成就,增强民族自豪感.2.通过对算法案例的学习,进一步理解算法的思想,能够用程序来解决生活中常见的数学问题.3.理解进位制,能进行各种进位制之间的相互转化.重点是进位制,用算法设计程序;难点是在程序设计中用好三种基本的逻辑结构.[教材优化全析]全析提示我们通过程序框图形象、直观地表示算法,因此,在编制程序前,先绘出程序框图,能使思路清晰,并且对于三种基本的逻辑结构:顺序结构、条件结构、循环结构的脉络表达准确,有助于我们准确写出程序语言.(一)教材上介绍了辗转相除法(欧几里得算法),求两个数的最大公约数,其基本步骤是带余除法m=nq+r(0≤r<n),反复执行,直到余数r=0为止.求任意两个数的最大公约数的算法是:程序框图比自然语言的描述更容易理解.一般说来,设计程序时,先画程序框图比较好.第一步:输入两个正整数a,b(a>b);第二步:求出a÷b的余数r;第三步:令a=b,b=r,若r≠0,重复第二步;第四步:输出最大公约数a.相应的程序框图是:举例说明.m=90,n=36,m=2n+18,r=18.令m=36,n=18.又有36=18×2,即m=2n,此时r=0.令m=18,n=0.故最大公约数为18.两个数a,b的最大公约数一般写成(a,b),如90与36的最大公约数为18,写成(90,36)=18.“更相减损术”反映了我国古代劳动人民的伟大智慧,让我们感到无比的光荣与自豪.其程序语言是:INPUT “请输入两个正整数a,b:”;a,bPRINT a;b;WHILE a<>bIF a>=b THENa=a-bELSEb=b-a如求78与36的最大公约数,简单写成:(78,36)→(42,36)→(36,6)→(30,6)→(24,6)→(18,6)→(12,6)→(6,6)故(78,36)=6.如两个数都为偶数,也可以先提取2,再用此法.PRINT a;b;表示与下一END IF WENDPRINT “的最大公约数为:”;a END 个输出语句不换行.(二)秦九韶算法求多项式的函数值,在算法上减少了求乘法的次数,使计算量减少,并且逻辑结构简单.这种算法避免了对自变量单独作幂的计算,转而与系数一起逐次增长幂次,从而提高了计算精度.这也是我国古代劳动人民智慧的结晶,是我国伟大国库中的瑰宝.例如,求五次多项式f (x )=a5x5+a4x4+a3x3+a2x2+a1x+a0,当x=x0 (x0为任意实数)时的值的程序语言是: INPUT “请输入自变量x0的值:”;x0 直到今天,秦九韶算法仍是世界上多项式求值的最先进的方法.这钟一成就比西方同样的算法早五、六百年.这种算法容易在计算器或计算机上实现.INPUT “请输入最高次项系数a5的值:”;a5 V=a5 n=1WHILE n <=5INPUT “请输入下一次的系数的值:”;b V=V*x0+b n=n+1 WENDPRINT “函数值是:”;V END分步写成: V0=a5,V1=V0x+a4, V2=V1x+a3, V3=V2x+a2, V4=V3x+a1, V5=V4x+a0.(三)排序是日常生活中最常见的一项活动,就是按照一定的规则,对数据加以排列整理,从而提高查找效率.教材上介绍的直接插入排序是人们最容易想到,也是最容易实现的方法.排序的方法与技巧多种多样,在不同的时间,不同的场合可以用不同的技巧.教材上介绍的冒泡排序法,非常形象地描述了较小的数像气泡一样逐趟向上飘浮,一直到最小的数浮到最上面,然后是逐渐增大的数.在这里要特别理解“一趟”的意义,它可能有多次交换.如果一趟排序交换次数为0,说明排序已经完成.每一趟都从头开始,且两个两个地比较,一直到最后一个数,每一趟可有多个交换.(四)进位制是人们为了计数和运算方便而约定的记数系统,约定满二进一,就是二进制;满十进一,就是十进制,等等.即“满几进一”就是几进制,几进制的基数就是几.常用的是十进制,用0~9这十个数字,计数时,几个数字排成一行,从右起向左分别是个位、十位、百位、千位、万位……它可以用10的幂的形式写成,如67890可以写成6×104+7×103+8×102+9×101+0×100.其他进位制也可以类似地用基数的幂的形式,如:111111(2)=1×25+1×24+1×23+1×22+1×21+1×20,654321(7)=6×75+5×74+4×73+3×72+2×71+1×70.上述方法实质上是将不同进制的数转化成了十进制的数,这类问题可统一由程序来实现.日常生活中和普遍数学中用的都是十进制.日常生活中有七进制(一周7天)、十二进制(一年12个月)、六十进制(1小时60分,1分钟60秒),等,基数一般标在右下角.基数不同,选用的数字也不同,如二进制用0和1,六进制用0,1,2,3,4,5.我们也能把十进制的数转化为其他进制的数,用除K 取余法.方法是:用K 连续去除这个数,或所得的商,一直到商为0止,然后取其余数,把这些余数顺次排起来,就是K 进制的数.如,将1285化为16进制的数:任何一种进位制的数都可以写成不同位上的数字与基数的幂的乘积之和的形式.12858051616160505余数最后一个余数写在首位,其次是倒数第二个余数,依次递推.故1285=505(16) 在实际生活中的数学知识很多,只要我们留心,世界上到处充满着数学的气息,我国古代劳动人民在这方面积累了大量的知识和经验,有兴趣的同学不妨上网查阅一下有关资料. 验证: 505(16)=5×162+0×161+ 5×160 =5×256+5=1285.[典型例题探究] 规律发现【例1】 我国《算经十书》之一《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?答曰:二十三.”你能用程序解决这个问题吗?分析:设物共m 个,被3,5,7除所得的商分别为x 、y 、z ,则这个问题相当于求不定方程这个问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.著名的“韩信点兵问题”即为此例的应用.⎪⎩⎪⎨⎧+=+=+=27,35,23z m y m x m 的正整数解. m 应同时满足下列三个条件:(1)m MOD 3=2;(2)m MOD 5=3; (3)m MOD 7=2.因此,可以让m 从2开始检验,若3个条件中有任何一个不成立,则m 递增1,一直到m 同时满足三个条件为止.考虑到m 被7除余数为2,故m 至少是9,也可以从m =9开始验证.解:m =2 f =0WHILE f =0IF m MOD 3=2 AND m MOD 5=3 AND m MOD 7=2 THEN PRINT “物体的个数为:”;m f =1 ELSE 设置f =0,f =1的目的是让循环进行或结束,否则循环无法停下来.此处让f =0时进行循环,f =1时中止循环.m =m +1 END IF WEND END实际上按此法求出来的只是符合条件的最小正整数. 【例2】我国古代数学家张邱建编《张邱建算经》中记有有趣的数学问题:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一凡百钱,买鸡百只,问鸡翁、母、雏各几何?”你能用程序解决这个问题吗?分析:设鸡翁、母、雏各x 、y 、z 只,则这个问题在数学上称为“百鸡问题”.⎪⎩⎪⎨⎧=++=++②,①,100100335z y x z y x 由②,得z =100-x -y , ③ 把三元一次方程组转化为二元一次不定方程.③代入①,得5x +3y +3100yx --=100, 即7x +4y =100. ④ 求方程④的解,可由程序解之. 解:x =1 y =1WHILE x <=14 WHILE y <=25IF 7*x +4*y =100 THEN z =100-x -yPRINT “鸡翁、母、雏的个数别为:”;x ,y ,z END IF y =y +1 WEND x =x +1 y =1 WEND END实际上,该题可以不对方程组进行化简,通过设置多重循环的方式得以实现.由①、②可得x 最大值为20,y 最大值为33,z 最大值为100,且z 为3的倍数.程序如下:从x 的最小值开始验证,循环进行.由于7x +4y =100,且x 、y ∈Z ,故x ≤14,y ≤25.x=1y=1z=3WHILE x<=20WHILE y<=33WHILE z<=100IF 5*x+3*y+z/3=100 ANDx+y+z=100 THENPRINT “鸡翁、母、雏的个数分别为:”;x、y、zEND IFz=z+3WENDy=y+1z=3WENDx=x+1y=1WENDEND对于多重循环或条件嵌套,要注意每一重都有开头和结尾,程序本身也有一个结尾,不能丢掉任何一个.【例3】写出用二分法求方程x3-x-1=0在区间[1,1.5]上的一个解的算法(误差不超过0.001).分析:教材P23练习第1题已研究过求x2-2=0的近似根的方法.本例与上述方法类似,只是方程稍微复杂了些.由于f(1)=13-1-1=-1<0,f(1.5)=1.53-1.5-1=0.875>0,所以取[1,1.5]中点25.11=1.25研究,以下同求x2-2=0的根的方法.解:a=1b=1.5c=0.001DOx=(a+b)/2f(a)=a∧3-a-1f(x)=x∧3-x-1IF f(x)=0 THENPRINT “x=”;xELSEIF f(a)*f(x)<0 THENb=xELSEa=xEND IFEND IFLOOP UNTIL ABS(a-b)<=cPRINT “方程的一个近似解x=”;xEND【例4】(1)将101111011(2)转化为十进制的数;(2)将53(8)转化为二进制的数.分析:(1)将各位上的数字与基数的幂的积求和.(2)先转化为十进制的数,再利用除2取余法.解:(1)101111011(2)=1×28+0×27+1×26+1×25+1×24+1×23+0×22+1×21+1=379.(2)53(8)=5×81+3=43.用二分法求方程的近似值一般取区间[a,b]具有以下特征:f(a)<0,f(b)>0.相应的程序框图是:余数432110521222222110101不同进位制之间的转化是一种通法,必须熟练掌握.∴53(8)=101011(2). 【例5】用冒泡排序法将下列各数排成一列: 8,6,3,18,21,67,54.并写出各趟的最后结果及各趟完成交换的次数.分析:每一趟都从头开始,两个两个地比较,若前者小,则两数位置不变;否则,调整这两个数的位置.注意取余数的顺序:从下向上. 解:第一趟的结果是: 6 3 8 18 21 54 67 完成3次交换. 第二趟的结果是:3 6 8 18 21 54 67 完成1次交换.第三趟交换次数为0,说明已排好次序, 即3 6 8 18 21 54 67.【例6】 用秦九韶算法写出求f (x )=1+x +0.5x 2+0.16667x 3+0.04167x 4+ 0.00833x 5在x =-0.2时的值的过程.分析:先把函数整理成注意“一趟”的意义:每一趟都从头开始,每两个两个地比较,一直到最后一个数. f (x )=((((0.00833x +0.04167)x +0.16667)x +0.5)x +1)x +1,按照从内向外的顺序依次进行. 解:x =-0.2a 5=0.00833 V 0=a 5=0.008333 a 4=0.04167 V 1=V 0x +a 4=0.04 相当于用提公因式法分解因式.a 3=0.016667 V 2=V 1x +a 3=0.15867 a 2=0.5 V 3=V 2x +a 2=0.46827 a 1=1 V 4=V 3x +a 1=0.90635 a 0=1 V 5=V 4x +a 0=0.81873 ∴f (-0.2)=0.81873. 通过分解步骤看出作乘法的次数少,比直接代入求幂的运算速度要快得多.[教材习题研讨]P 21 思考 答案:当计算机遇到UNTIL 语句时,先执行一次循环体,再判断是否满足条件,若不满足,再执行循环体,然后再检查是否满足条件,如此反复.当满足条件时,将不执行循环体,转而执行LOOP UNTIL 后的语句.方法点拨 WHILE 语句称为前测试型,UNTIL 语句称为后测试型. P 22 思考 答案:课本上的算法可以改进.将循环条件“WHILE d <=n -1 AND flag=1”改为“WHILE d <=SQR (n ) AND flag=1”即可.改进后循环次数少了,提高了解题速度. P 23 练习 1.解:a =1 b =2 c =0.005 DO x =(a +b )/2 f (a )=a ∧2-2 f (x )=x ∧2-2 IF f (x )=0 THENPRINT “方程根为:”;x ELSE若改为 INPUT “请输入a 、b 的值:”;a 、b INPUT “请输入误差范围c :”;c 则该题的区间范围、误差范围还可以改变、限制.IF f (a )*f (x )<0 THEN b =x ELSE a =x END IF END IFLOOP UNTIL ABS (a -b )<=c PRINT “方程的近似根为:”;x END|a -b |<=c 不成立时循环,成立时则停止循环. 2.解:x =1 WHILE x <=20 y =x ∧2-3*x +5 PRINT “x =”;x PRINT “y =”;y x =x +1 WEND END计算一个、输出一个,再计算、输出下一个,如此反复.3.解:t =1 i =1 INPUT “请输入n 的值:”;n DO t =t *i i =i +1 LOOP UNTIL i >n PRINT “这个数的阶乘为:”;t END也可以用WHILE 语句 WHILE i <=n t =t *i i =i +1 WEND 输出语句可写成 PRINT n ;“!=”;t P 23 习题1.2A 组1.解:(1)输入你的名字,输出你的名字.(2)A =1 A =1×2=2 A =2×3=6 A =6×4=24 A =24×5=120 输出 5! 是120正确理解输入语句、输出语句和赋值语句. 2.解:INPUT “梯形的上底、下底、高分别为:”;a ,b ,h c =(a +b )/2 S =c *hPRINT “梯形的面积S =”;S ENDa ,b ,h 可分别输入,写成三个INPUT 语句. 3.解:INPUT “请输入两个整数a ,b :”;a ,b IF a MOD b =0 THEN PRINT “a 能被b 整除” MOD 表示取余数,整除即余数为0. 输出语句可以写成 ELSE PRINT “a 不能被b 整除” END IF END4.解:INPUT “请输入加数的个数n :”;nt =1 i =2 PRINT a ;“能被”;b ;“整除” sum=0 DO sum=sum+i t =t +1i =tt 1s um=s um+i 是累加求和,t =t +1表示计数器. LOOP UNTIL t >n可以用WHILE 语句,条件PRINT “和s=”;sumEND是t<=n.5.解:s=1t=1p=1i=1j=1k=1INPUT “请输入n,m的值:”;n,m DOs=s*ii=i+1LOOP UNTIL i>n设置三个计数器,三个独立的循环结构.DOt=t*jj=j+1LOOP UNTIL j>mDOp=p*kk=k+1LOOP UNTIL k>n-ma=t*pb=s/aPRINT “组合数的值为:”;b END可以写成WHILE语句,同学们自己写出.B组1.解:R=0.5a=1000i=1DOa=a*(1+R)i=i+1LOOP UNTIL i>6PRINT “2008年底的资金总额为:”;a END2008年底资金总额为1000(1+0.5)6万元,设计成累乘的形式,用循环结构.如用INPUT语句输入a、R的值,则具有一般意义.2.解:INPUT “请输入x的值:”;x IF x<1 THENy=xPRINT “y=”;yELSEIF x<10 THENy=2*x-1PRINT “y=”;yELSEy=3*x-11PRINT “y=”;yEND IFEND IFEND分段函数对应于条件结构,用条件语句的形式,可以形成嵌套.3.解:INPUT “请输入数字a和加数的个数n:”;a,n s=0b=ai=1DO实数aaaa=a×103+a×102+a ×10+a,aaaa=aaa×10+a,类推.s=s+bb=b*10+ai=i+1LOOP UNTIL i>nPRINT “s=”;sEND[知识应用自测]思路导引1.写出下列程序运行的结果.(1)a=2 (2)x=100i=1 i=1WHILE i<=6 DOa=a+1 x=x+10PRINT i,a PRINT i,xi=i+1 i=i+1WEND LOOP UNTIL x=200END END答案:(1)1,3;2,4;3,5;4,6;5,7;6,8.(2)1,110;2,120;3,130;4,140;5,150;6,160;7,170;8,180;9,190;10,200. ←理解当型语句和直到型语句的不同,理解循环体的执行步骤.2.求小于100的所有正偶数的和,设计一个算法的程序.解:s=2i=4DOs=s+ii=i+2LOOP UNTIL i>=100PRINT “2+4+6+…+98=”;sEND←用UNTIL语句.3.计算100×(1+0.02)8,用循环语句写出算法.解:a=100R=0.002i=1WHILE i<=8a=a*(1+R)i=i+1WENDPRINT “100*(1+0.002)∧8=”;aEND←用WHILE语句.4.求平方值小于1000的最大正整数,写出一个算法的程序.解:i=1DOs=i∧2i=i+1LOOP UNTIL s>=1000i=i-2PRINT “平方值小于1000的最大正整数为:”;iEND←用UNTIL语句.5.计算1+2+22+23+24+…+263,写出算法的程序.解:s=1n=2i=1←用WHILE语句.WHILE i<=63s=s+n∧ii=i+1WENDPRINT “1+2+2∧2+2∧3+…+2∧63=”;sEND6.1,1,2,3,5,8,13,21,…这一列数的规律是:从第三个数开←用WHILE语句,设置累加项.始,每个数为其前面两个数的和,写出计算这列数前20个数的和的算法程序.解:A=1B=1s=A+Bi=1WHILE i<=18C=A+Bs=s+CA=BB=Ci=i+1WENDPRINT “前20个数的和为:”;sEND←用t=t+10的形式.7.设计0°~180°间隔为10°的角的正弦值的求法程序.解:A=0DOC=3.14159265*A/180B=sin(C)PRINT “角和它的正弦值分别为:”;A,BA=A+10LOOP UNTIL A>180END←用UNTIL语句.8.2000年我国人口为13亿,如果人口每年的自然增长率为7‰,那么多少年后我国人口将达到15亿?设计一个算法的程序.解:A=13R=0.007i=1DOA=A*(1+R)i=i+1LOOP UNTIL A>=15i=i-1PRINT “达到或超过15亿人口需要的年数为:”;iEND9.编写求乘积为399的两个相邻奇数的程序.←用UNTIL语句.解:i=1DOt=i+2s=i*ti=i+2LOOP UNTIL s=399PRINT t-2,tEND。
1.3.2算法案例-秦九韶算法
计算多项式f(x) =x5+x4+x3+x2+x+1当x = 5 的值 算法1: 因为f(x) =x5+x4+x3+x2+x+1 所以f(5)=55+54+53+52+5+1 =3125+625+125+25+5+1 = 3906 算法2: f(5)=55+54+53+52+5+1 =5×(54+53+52+5+1 ) +1 =5×(5×(53+52+5 +1 )+1 ) +1 =5×(5×(5×(52+5 +1) +1 ) +1 ) +1 =5×(5×(5×(5 ×(5 +1) +1 )+1)+1) +1
作业:
课本P45页练习T2; P48页A组T2.
《数书九章》——秦九韶算法 设 f (x) 是一个n次的多项式
f ( x) an x an 1 x
n n 1
a1 x a0
对该多项式按下面的方式进行改写:
f ( x) an x an 1 x
n n 1
a1 x a0 a1 ) x a0 a2 ) x a1 ) x a0
要求多项式的值,应该先算最内层的一次多项式的值,即
v1 an x an 1
然后,由内到外逐层计算一次多项式的值,即
v2 v1 x an 2 v3 v2 x an 3
最后的一项 是什么?
vn vn 1 x a0
这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的 方法,称为秦九韶算法。
例1:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7的系数
x=5
2
-5 10 5
高中数学教案1.3算法案例2新课标必修三
一、复习准备:
分别用辗转相除法和更相减损术求出两个正数623和1513的最大公约数.。
二、讲授新课:
例如,设计一个求多项式 当 时的值的算法。
一般的解决方案:将 代入多项式进行计算即可;
提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了4+3+2+1=10次乘法运算,5次加法运算.优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)
.
这是一个反复执行的步骤,因此可用循环结构来实现.
算法步骤:
程序框图:
程序:
三.巩固练习:
2.P45练习2
四.小结:
(1)秦九韶算法计算多项式的值及程序设计
(2)注意循环语句的使用与算法的循环次数,对算法进行改进。
那么,有没有更有效的算法呢?
1.秦九韶算法
例如:求一个n次多项式 的值?
先把多项式改写为:
首先计算最内层括号内一次多项式的值,即 ,
然后由内向外逐层计算一次多项的值,即 ,
,
.
这样,求n次多项式f(x)的值就转化为求n个一次多项式的值。
结论:这种算法就是“秦九韶算法”。
例1、已知一个5次多项式为
f(x)=5x5+ 2x4+ 3.5x3- 2.6x2+ 1.7x - 0.8
教学目标:(1)了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数,提高计算效率的实质;(2)理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用;(3)体会算法的基本思想;
教学重点:秦九韶算法的特点及其程序设计。
教学难点:秦九韶算法的先进性理解及其程序设计。.
第一章 1.3 算法案例:辗转相除法、秦九韶算法
3,答案:C
返回
• 4.用秦九韶算法求f(x)=3x?+4x?+5x? +6x?+7x?+8x+1,当x=0.4时的值, 需进行乘法运算和加法运算的次数分别为 ( ) • A. 6 6 B. 5 6 • C.6 5 D.6 12 • 解析:改写多项多f(x)=(((((3x+4)x+5)x+ 6)x+7)x+8)x+1,则需要6次乘法和6次加 法. • 答案:A
返回
课堂练习
2.用辗转相除法求294和84的最大公约数时,需要 做除法的次数是( ) A.1 B. 2 C.3 D. 4 3.用秦九韶算法求多项式的值,可用哪种结构的算 法实现( ) A.顺序结构 B.条件结构 C.循环结构 D.A、B两种 • 2,解析:由294=84×3+42,84=42×2知,共需 做2次除法. • 答案:B
返回
法二:更相减损术:
因为378与90都是偶数. 所以用2约简得189和45. 189-45=144,144-45=99, 99-45=54,54-45=9, 45-9=36,36-9=27, 27-9=18,18-9=9.
所以378与90的最大公约数为2×9=18.
返回
[例2]
用秦九韶算法求多项式
1.3 算法案例 辗转相除法、秦九韶算法
返回
预习思考
• 1,用辗转相除法求80和36的最大公约数, 并用更相减损术检验所得结果.
• 2,用秦九韶算法求多项式f(x)=2x4-6x3 -5x2+4x-6在x=5时的值.
返回
[例1]
用辗转相除法求80和36的最大公约数,并
用更相减损术检验所得结果. [自主解答] 用辗转相除法:
返回
1.秦九韶算法的步骤
返回
2.应用秦九韶算法计算多项式的值应注意的问题 (1)要正确将多项式的形式进行改写. (2)计算应由内向外依次计算. (3)当多项式函数中间出现空项式,要以系数为零的
1.3.2算法案例(2)秦九韶算法
思考5:上述求多项式 思考5:上述求多项式 5: f(x)=anxn+an-1xn-1+…+a1x+a0的值的方法 称为秦九韶算法 利用该算法求f(x 秦九韶算法, 称为秦九韶算法,利用该算法求f(x0)的 一共需要多少次乘法运算, 值,一共需要多少次乘法运算,多少次 加法运算? 加法运算? n次乘法运算, n次加法运算 次乘法运算, 次加法运算 次乘法运算 思考6:在秦九韶算法中, 6:在秦九韶算法中 思考6:在秦九韶算法中,记v0=an,那么 步的算式是什么? 第k步的算式是什么? (k=1, vk=vk-1x+an-k (k=1,2,…,n)
思考4:对于f(x)=(…((a 思考4:对于f(x)=(…((anx+an-1)x+ 4:对于 an-2)x+…+a1)x+a0,由内向外逐层计算 一次多项式的值,其算法步骤如何? 一次多项式的值,其算法步骤如何? 第一步,计算v 第一步,计算v1=anx+an-1. 第二步,计算v 第二步,计算v2=v1x+an-2. 第三步,计算v 第三步,计算v3=v2x+an-3. … 第n步,计算vn=vn-1x+a0. 计算v
第二种做法与第一种做法相比,乘法的运算次数 第二种做法与第一种做法相比 乘法的运算次数 减少了,因而能提高运算效率 而且对于计算机来说,做 因而能提高运算效率.而且对于计算机来说 减少了 因而能提高运算效率 而且对于计算机来说 做 一次乘法所需的运算时间比做一次加法要长得多,因此 一次乘法所需的运算时间比做一次加法要长得多 因此 第二种做法能更快地得到结果. 第二种做法能更快地得到结果
知识探究( 知识探究(一):秦九韶算法的基本思想
秦九韶算法公开课教案
知识与技 知识与技
1.3 算法案例——秦九韶算法 算法案例—— ——秦九韶算法
高 一(117)班 ) 新授课 新授课
了解秦九韶算法的计算过程, 了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少 计算次数提高计算效率的实质。 计算次数提高计算效率的实质。
教
能目标
学
过程与方
见附件 (8)课堂检测
(9)作业布置:习题 1.3 A 组 第 2 题, 《课堂检测》附加题
算法案例——秦九韶算法学案 算法案例——秦九韶算法学案 ——秦九韶算法
学习目标 学习目标: 目标 了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质 并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。 了解秦九韶算法的计算过程 并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
V0 = 2 V1 = V0 × 3 + 3 V2 = V1 × 3 + 4 V3 = V2 × 3 + 5 V4 = V3 × 3 + 6
这种通过将 4 次多项式变形为 4 个一次多 项式,由内向外逐层计算,依次减少括号 的算法就是秦九韶算法。并且计算只与多 项式的系数有关。
进一步探 索具有一 般意义的 算法。
计算 x 的幂时,可以利用前面的计算 结果,以减少计算量,即先计算 x ,然后 依次计算 x 2 • x, x 3 • x 的值,这样计算上 (2)有没有更高效的算法? 述多项式的值,一共需要多少次乘法,多少 次加法?(学生思考之后作出回答) 得出结论:第二种做法与第一种做法 相比,乘法的运算次数减少了,因而能提 高运算效率,而且对于计算机来说,做一 次乘法所需的运算时间比做一次加法要长 得多,因此第二种做法更快地得到结果。
高中数学《秦九韶算法与排序》教案2 新人教A版必修3
§1.3秦九韶算法与排序(两个课时)教学目标:1了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
教学重点:秦九韶算法的特点及其程序设计,两种排序法的排序步骤及其程序设计教学难点:秦九韶算法的先进性理解及其程序设计,排序法的计算机程序设计教学过程 (秦九韶计算多项式的方法)例1、设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序。
个别学生提出一般的解决方案,如:x=5 y=2 * x^5 – 5 * x^4 – 4 * x^3 + 3 * x^2 – 6 * x+ 7 PRINT“y=”;y END提问:例1计算时需要多少次乘法计算?多少次加法计算?有什么优缺点?(上述算法一共做了解15次乘法运算,5次加法运算,优点是简单、易懂。
缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高。
)提问:计算x的幂时,可以利用前面的计算结果,以减少计算量,即先计算x2,然后依次计算x2.x,(x2.x).x,((x2.x).x).x的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法?(上述算法一共做了解4次乘法运算,5次加法运算。
)结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法更快地得到结果。
我们把多项式变形为:f(x)= 2x5-5x4-4x3+3x2-6x+7=((((2x-5)x-4)x+3)x-6)x+7从内到外,如果把每一个括号都看成一个常数,x的系数依次是什么?用图表可以表示为:最后的系数2677即为所求的值,让学生描述上述计算过程。
最新人教版必修三高中数学9.§1.3.2算法案例—秦九韶算法教学设计
备课人授课时间课题§1.3.2算法案例—秦九韶算法课标要求1.了解秦九韶算法的计算过程,理解利用秦九韶算法减少计算次数提高计算效率的实质。
2.理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
教学目标知识目标了解秦九韶算法的计算过程;了解数学计算转换为计算机计算的途径。
技能目标模仿秦九韶计算方法,体会古人计算构思的巧妙;探究计算机算法与数学算法的区别。
情感态度价值观通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。
重点理解秦九韶算法的思想。
难点用循环结构表示算法的步骤。
教问题与情境及教师活动学生活动学 过 程 及 方 法一.复习引入 大家都喜欢吃苹果吧,我们吃苹果都是从外到里一口一口的吃,而虫子却是先钻到苹果里面从里到外一口一口的吃,由此看来处理同一个问题的方法多种多样.怎样求多项式f(x)=x 5+x 4+x 3+x 2+x+1当x=5时的值呢?思考:若先计算各项的值,然后再相加,那么一共要做多少次乘法运算和多少次加法运算?共需要10次乘法运算,5次加法运算。
我们把多项式变形为:1)))1(1(1()(2+++++=x x x x x x f 再统计一下计算当5=x 时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。
显然少了6次乘法运算。
这种算法就叫秦九韶算法。
二.研探新知111)(a x a x a x a x f n n n n ++⋅⋅⋅++=--1教问题与情境及教师活动学生活动1210123120132211012211)))((())(()()(a a x a x a x a a x a x a x a x a a x a x a x a x a a x a x a x a x a x f n n n n n n n n n n n n n n n n n n n +++++==+++++=+++++=+++++=--------------学 过 程 及 方法 思考2:对于由内向外逐层计算一次多项式 的值,其算法步骤如何? 第一步,计算11-+=n n a x a v . 第二步, 第三步, …第n 步,计算01a x v v n n +=-思考3:上述求多项式0111)(a x a x a x a x f n n n n ++⋅⋅⋅++=--的值的方法称为秦九韶算法,利用该算法求)(0x f 的值,一共需要多少次乘法运算,多少次加法运算?秦九韶算法适用一般的多项式f(x)=a n x n+a n-1x n-1+…+a 1x+a 0的求值问题。
高中数学必修3讲义 专题1.3 算法案例
1.求两个正整数的最大公约数的算法 (1)辗转相除法①定义:辗转相除法是用于求_____________的最大公约数的一种算法,这种算法是由欧几里得在公元前300年左右首先提出的,因而又叫欧几里得算法.就是对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成一对新数,继续上面的除法,直到余数为零,则这时较小的数就是原来两个数的最大公约数. ②算法步骤用辗转相除法求两个正整数的最大公约数,其算法步骤如下: 第一步,给定两个正整数,m n . 第二步,计算m 除以n 所得的余数r . 第三步,,m n n r ==.第四步,若0r =,则,m n 的最大公约数等于m ;否则,返回第二步. ③程序框图如图所示:④程序如下:INPUTm,nDOr=m MOD nm=nn=rLOOP UNTIL r=0PRINT mEND 或INPUT m,nr=1While r>0r=m MOD nm=nn=rWENDPRINT mEND(2)更相减损术①定义:中国古代的数学专著《九章算术》中记载着“更相减损术”,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.”②算法步骤第一步,任意给定两个正整数,判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.③程序框图④程序如下:2.秦九韶算法(1)定义及原理:把一个n 次多项式1110()n n n n f a x a x x a x a --=++⋅⋅⋅++改写成如下形式:2110()((()))n n n f a x a x x a x a x a --=⋅⋅⋅+++⋅⋅+⋅+.求多项式的值时,首先计算最内层括号内一次多项式的值,即11n n v a x a -=+,然后由内向外逐层计算一次多项式的值,即212323,n n v v x a v v x a --=+=+,…,10n n v v x a -=+,这种求n 次多项式()f x 的值的方法叫做秦九韶算法.(2)秦九韶算法程序化的可行性探讨:观察秦九韶算法中的n 个一次式,可见计算k v 时要用到1k v -的值,若令0n v a =,我们可以得到下面的递推公式:0____________(1,2,,)n kv a v k n =⎧⎨==⋅⋅⋅⎩.这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现. (3)算法步骤第一步,输入多项式次数n 、最高次项的系数n a 和x 的值. 第二步,将v 的值初始化为n a ,将i 的值初始化为n -1. 第三步,输入i 次项的系数i a . 第四步,,1i v vx a i i =+=-.第五步,判断i是否大于或等于0.若是,则返回第三步;否则,输出多项式的值v.(4)程序框图如图所示:(5)程序如下:INPUT “n=”;nINPUT “an=”;aINPUT “x=”;xv=ai=n-1WHILE i>=0PRINT “i=”;iINPUT “ai=”;av=v*x+ai=i-1WENDPRINT vEND3.进位制(1)定义:进位制是人们为了计数和运算方便而约定的记数系统,约定满二进一,就是二进制;满十进一,就是十进制;满六十进一,就是六十进制;等等.也就是说,“满几进一”就是几进制,几进制的基数就是几.一般地,若k 是一个大于1的整数,那么以k 为基数的k 进制数可以表示为一串数字连写在一起的形式:1210()110110(,,,,,0<,0,,,)n n n k n n n n a a a a a a a a a a k a a a k ----⋅⋅⋅⋅⋅⋅∈<≤⋅⋅⋅<N .说明:①若一个数为十进制数,其基数可以省略不写.②若是其他进位制的数,在没有特别说明的前提下,其基数必须写出,常在数的右下角标明基数. (2)将k 进制数转化为十进制数 ①算法步骤:计算k 进制数a 的右数第i 位数字i a 与1i k -的乘积1i i a k -⋅,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法,算法步骤如下: 第一步,输入,a k 和n 的值.第二步,将b 的值初始化为0,i 的值初始化为1. 第三步,1,1i i b b a k i i -=+⋅=+.第四步,判断i n >是否成立.若是,则执行第五步;否则,返回第三步. 第五步,输出b 的值. ②程序框图如图所示:③程序如下:(3)将十进制数转化为k 进制数 ①转化方法:十进制数化为k 进制数用____________,即先把十进制数a 除以k ,商为0q ,余数为0r ,再把0q 除以k ,商为1q ,余数为1r ,…,反复进行这种除法,直到商1n q -除以k 所得的商为0,余数是n r ,即1n n q r -=为止,此时将所有余数按从右到左排列就得到所要求的k 进制数10()n n k r r r -⋅⋅⋅. ②算法步骤:第一步,给定十进制正整数a 和转化后的数的基数k . 第二步,求出a 除以k 所得的商q ,余数r . 第三步,把得到的余数依次从右到左排列.第四步,若0q ≠,则a q =,返回第二步;否则,输出全部余数r 排列得到的k 进制数. ③程序框图如图所示:④程序如下:INPUT “a,k=”;a,kb=0i=0DOq=a\kr=a MOD kb=b+r*10^ii=i+1a=qLOOP UNTIL q=0PRINT bENDK知识参考答案:1.(1)两个正整数2.(2)1k n k v x a --+3.(3)①除k 取余法K —重点 辗转相除法、更相减损术、秦九韶算法、进位制 K —难点 用秦九韶算法求多项式的值,进位制间的转换 K —易错易对秦九韶算法中的运算次数理解错误1.辗转相除法与更相减损术辗转相除法与更相减损术有着相同的算法依据,但要注意运算过程的差别. 两者的区别是:(1)辗转相除法进行的是除法运算,即辗转相除,更相减损术进行的是减法运算,即辗转相减,但其实质都是一个不断的递推过程.(2)辗转相除法,下一次进行相除时,由上一次的除数和余数直接相除即可.而更相减损术下一次相减前必须有一个判断大小的过程,以区别谁做被减数.注意:用更相减损术求两正整数的最大公约数时,若两数为偶数,可先约去2,这时莫忘记求得的相等两数乘以约简的数才是所求的最大公约数.【例1】用辗转相除法和更相减损术求840与1764的最大公约数. 【答案】840与1764的最大公约数是84. 【解析】辗转相除法: 1764=840×2+84, 840=84×10+0,∴840与1764的最大公约数是84. 更相减损术: 1764–840=924, 924–840=84, 840–84=756,756–84=672, 672–84=588, 588–84=504, 504–84=420, 420–84=336, 336–84=252, 252–84=168, 168–84=84,∴840与1764的最大公约数是84.【例2】利用辗转相除法求3869与6497的最大公约数. 【答案】3869与6497的最大公约数为73.【名师点睛】辗转相除法计算次数少,而更相减损术计算次数多,但是更相减损术每一步的计算都是减法,比做除法运算要简单一些,所以一般当数较小时考虑用更相减损术,当数较大时考虑用辗转相除法. 2.秦九韶算法秦九韶算法的实质是:求多项式1110()n n n n f a x a x x a x a --=++⋅⋅⋅++的值时,转化为求n 个一次多项式的值,共进行n 次乘法运算和n 次加法运算.这种算法的运算次数较少,是多项式求值比较先进的算法. 【例3】 用秦九韶算法计算多项式f (x )=12+35x –8x 2+79x 3+6x 4+5x 5+3x 6在x =–4时的值时,V 3的值为A .–845B .220C .–57D .34【答案】C【解析】∵多项式f (x )=12+35x –8x 2+79x 3+6x 4+5x 5+3x 6=(((((3x +5)x +6)x +79)x –8)x +35)x +12, 当x =–4时,∴v 0=3,v 1=3×(–4)+5=–7,v 2=–7×(–4)+6=34,v 3=34×(–4)+79=–57.故选C . 【例4】用秦九韶算法计算函数f (x )=2x 4+3x 3+5x –4在x =2时的函数值.【答案】62【名师点睛】利用秦九韶算法计算多项式的值的策略:(1)正确地将多项式改写,若在多项式中有几项不存在,可将这些项的系数看成0,即把这些项看做0n x ⨯. (2)由内向外逐次计算.(3)每一步计算结果准确,由于下一次计算用到上一次计算的结果,应认真、细致地计算每一步. 3.进位制把一个非十进制数转化为另一种非十进制数,通常是把这个数先转化为十进制数,然后再利用除k 取余法,把十进制数转化为k 进制数. 【例5】将八进制数127(8)化为十进制数. 【答案】87【解析】()21081271828786416787=⨯+⨯+⨯=++=.【例6】已知一个k 进制的数123(k )与十进制的数38相等,求k 的值. 【答案】5【解析】将转化为十进制,()210212312323k k k k k k =⨯+⨯+⨯=++, 由题意,得k 2+2k +3=38, 所以k 2+2k –35=0, 所以k =5或k =–7(舍) 所以k =5.【名师点睛】除k 取余法的两个关注点:①要连续除:用k 连续去除十进制数或所得的商,直到商为零为止. ②若是其他进位制的数,在没有特别说明的前提下,其基数必须写出,常在数的右下角标明基数.1.秦九韶算法的先进性主要体现在减少运算次数,下列说法正确的是A .可以减少加法运算次数B .可以减少乘法运算次数C .同时减少加法和乘法的运算次数D .加法次数和乘法次数都有可能减少2.用秦九韶算法求多项式652()7632f x x x x =+++,当4x =时的值,先算的是A .4×4=16B .7×4=28C .4×4×4=64D .7×4+6=34 3.把十进制的23化成二进制数是A .00 110(2)B .10 111(2)C .10 1111(2)D .11 101(2)4.若十进制数26等于k 进制数32,则k 等于A .4B .5C .6D .85.用更相减损术求294和84的最大公约数时,需要做减法的次数是A .3B .4C .5D .66.1 037和425的最大公约数是A .51B .17C .9D .37.已知多项式54321()4322f x x x x x x =++---,用秦九韶算法求(2)f -等于 A .1972-B .1972C .1832D .1832-8.用更相减损术求156与91的最大公约数时,需要做减法的次数是__________. 9.将45(6)改写成十进制数为__________.10.用秦九韶算法计算多项式5432()54321f x x x x x x =+++++当4x =时的值时,乘法运算的次数为__________.11.用更相减损术求288与153的最大公约数.12.用秦九韶算法求多项式5432()3532f x x x x x x =-+-+当2x =时的值.13.在下列四个数中,最小的数是A .(9)85B .(6)210C .(4)1000D .(2)11111114.用秦九韶算法计算多项式65432()256238103f x x x x x x x =+++-+-当4x =-时的值时,3v 的值为A .742-B .49-C .18D .18815.若98与63的最大公约数为a ,二进制数(2)110011化为十进制数为b ,则a b +=A .53B .54C .58D .6016.用更相减损术求123和48的最大公约数是A .3B .7C .9D .1217.计算机是将信息转换成二进制处理,二进制即“逢二进一”,如(2)1101表示二进制数.将它转化成十进制形式是32101212021213⨯+⨯+⨯+⨯=,那么将二进制数1611111个(2)转换成十进制形式是A .217-2B .216-2C .216-1D .215-118.在下列各数中,最大的数是A .(9)85B .(6)210C .(4)1000D .(2)1111119.完成进位制之间的转化:(5)413=__________(7). 20.(1)把八进制数()87341化为十进制数;(2)把1285化为16进制数.21.先将412(5)化成十进制的数,然后用“除k取余法”再化成七进制的数.22.用辗转相除法和更相减损术求261与319的最大公约数.1 2 3 4 5 6 7 13 14 15 16 17 18B D B D B B A D BC A C B1.【答案】B【解析】通过对秦九韶算法的理解,可知它的主要作用是减少乘法的次数,将原来的乘法次数由(1)2n n +减少到n ,而对加法没有影响.故选B . 2.【答案】D3.【答案】B【解析】23÷2=11…1,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1,故23(10)=10111(2).故选B . 4.【答案】D【解析】由题意知,10 2632k k =⨯+⨯,解得8k =.故选D . 5.【答案】B【解析】()()()()()294,84210,84126,8484,4242,42→→→→. 6.【答案】B【解析】∵1 037=425×2+187,425=187×2+51,187=51×3+34,51=34×1+17,34=17×2,即1 037和425的最大公约数是17. 7.【答案】A【解析】∵1()((((43)2)1)1)2f x x x x x x =++---,∴197(2)2f -=-.8.【答案】5【解析】求最大公约数的过程如下:1569165-=,916526-=,652639-=,392613-=,261313-=.故13是最大公约数,共进行了5次减法运算. 9.【答案】29(10)【解析】由于45(6)=4×61+5×60=29(10).故答案为:29(10). 10.【答案】5【解析】5432((((54)3)2)1()54321)1f x x x x x x x x x x x =++++++++++=,不难发现要经过5次乘法,5次加法运算. 11.【答案】详见解析.【解析】288-153=135,153-135=18,135-18=117,117-18=99,99-18=81,81-18=63,63-18=45,45-18=27,27-18=9,18-9=9. 因此288与153的最大公约数为9. 12.【答案】详见解析.13.【答案】D【解析】因为(9)8589577=⨯+=,2(6)210261678=⨯+⨯=,3(4)10001464=⨯=,543210(2)11111122222263=+++++=,所以最小的数是(2)111111.故选D .14.【答案】B【解析】65432()256238103f x x x x x x x =+++-+- (((((25)6)23)8)10)3x x x x x x =+++-+-,则010212,52(4)53,63(4)618v v v x v v x ==+=⨯-+=-=+=-⨯-+=,322318(4)v v x =+=⨯-2349+=-,故选B . 15.【答案】C【解析】∵9816335=⨯+,6313528=⨯+,351287=⨯+,2874=⨯,∴98和63的最大公约数是7,即7a =.二进制数(2)110011化为十进制数为54321012120202121251⨯+⨯+⨯+⨯+⨯+⨯=,即51b =,则58a b +=.故选C . 16.【答案】A【解析】123-48=75,75-48=27,48-27=21,27-21=6,21-6=15,15-6=9,9-6=3,6-3=3,所以123和48的最大公约数是3. 17.【答案】C【解析】161111个(2)1514016=12+12++12=21⨯⨯⨯-.18.【答案】B19.【答案】213【解析】∵012(5)41335154535425108=⨯+⨯+⨯=++⨯=,012108371727=⨯+⨯+⨯,∴(7)(5)421313=.20.【答案】(1)3809;(2)()16505.【解析】(1)()87341=3210783848183809⨯+⨯+⨯+⨯=;(2)用16连续去除1285,直到商为0为止,所得到的余数依次从右向左排列,就得到()161285505=. 21.【答案】详见解析.【解析】412(5)=2×50+1×51+4×52=2+5+4×25=107, ∵107=7×15+2, 15=7×2+1, 2=7×0+2.∴把5进制的数412(5)化为7进制是212(7). 22.【答案】详见解析.【解析】辗转相除法: 319=261×1+58, 261=58×4+29, 58=29×2,所以261与319的最大公约数为29.。
1.3.2秦九韶算法教案
1、已知一个4次多项式为f(x)=3x4+5x3+x2-3x+1,
用秦九韶算法求这个多项式当x=2时的值。
2令v0=an,则可得到下面的公式:
v0=an
vk=(k=1,2,…,n)
这个步骤可用循环结构来实现。
3、在理解秦九韶算法的思想后,用程序框图、程序把算法表示出来。
2、对于计算机来说,做一次乘方运算所用的时间比做一次加法运算所用的时间要
得多,故减少乘法运算的次数,能使算法更优。
3、对于第一题中的问题,有没有更好的算法呢?
4、如果把第一题中的问题一般化:求多项式f(x)=anxn+an-1xn-1…+a1x+a0的值,能把我国南宋时期的数学家秦九韶在《数书九章》中提出的算法叙述出来吗?他解决这类问题需做次乘方运算,次加法运算。
课题
秦九韶算法
中心备课人
王大喜
三维目标
1、理解秦九韶算法的数学原理,并能根据原理进行算法分析;
2、体会中国古代数学对世界数学发展的贡献。
教学重点
理解秦九韶算法的思想
教学难点
用循环结构表示算法步骤
教
学
过
程
教
学
过
程
教学内容
教师批注
【自学提纲】
1、求多项式f(x)=x5+x4+x3+x2+1当x=5时的值时,如果把5代入多项式f(x),计算各项的值,然后相加,需做次乘方运算,次加法运算。
课堂总结
1、计算机的速度快,但算法好坏的一个重要标志仍然是运算的次数,如果一个算法从理论上需要超出计算机允许范围内的运算次数,这个算法就只能是一个理论上的算法。
人教版高中数学必修3第一章算法初步-《1.3算法案例:秦九韶算法》教案
1.3算法案例:秦九韶算法1、利用秦九韶算法求多项式1153723+-+x x x 在23=x 的值时,在运算中下列哪个值用不到( )A 、164B 、3767C 、86652D 、851692、利用秦九韶算法计算多项式1876543x f(x)23456++++++x x x x x = 当x=4的值的时候,需要做乘法和加法的次数分别为( )A 、6,6B 、5,6C 、5,5D 、6,53、利用秦九韶算法求多项式1352.75.38123)(23456-++-++=x x x x x x x f 在6=x 的值,写出详细步骤。
4、下图的框图是一古代数学家的一个算法的程序框图,它输出的 结果s 表示( )A 、3210a a a a +++的值B 、300201032x a x a x a a +++的值 C 、303202010x a x a x a a +++的值 D 、以上都不对5、已知n 次多项式1011()n n n n n P x a x a x a x a --=++++,如果在一种算法中,计算0k x (k =2,3,4,…,n )的值需要k -1次乘法,(1)计算30()P x 的值需要9次运算(6次乘法,3次加法),那么计算0()n P x 的值需要多少次运算?(2)若采取秦九韶算法:0011(),()()k k k P x a P x xP x a ++==+(k =0, 1,2,…,n -1),计算30()P x 的值只需6次运算,那么计算0()n P x 的值共需要多少次运算?(3)若采取秦九韶算法,设a i =i+1,i=0,1,…,n ,求P 5(2)(写出采取秦九韶算法的计算过程)答案:1、D2、A3、解:13)5)2.7)5.3)8)123((((()(-++-++=x x x x x x x f2.243168)6(2.2431681362.40530562.67542.765.11245.36188863012635645342312010==-⨯==+⨯==+⨯==-⨯==+⨯==+⨯==f v v v v v v v v v v v v v4、C5、n +3)(2)2n ;(3)∵0011(),()()k k k P x a P x xP x a ++==+,∴P0(2)=1,P1(2)=2P0(2)+2=4;P2(2)=2P1(2)+3=11;P3(2)=2P2(2)+4=26;P4(2)=2P3(2)+5=57;P5(2)=2P4(2)+6=120。
人教A版数学必修三教案:§1.3算法案例(秦九韶算法)
1.3 案例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 算法案例》教案
教材章节:§1.3课题:算法案例教学目标:1.学问与力量:(1)理解辗转相除法与更相减损术中蕴含的数学原理,并能依据这些原理进行算法分析。
(2)了解秦九韶算法的计算过程,并理解利用秦九韶算法可以削减计算次数提高计算效率的实质。
(3)了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
(4)基本能依据算法语句与程序框图的学问设计完整的程序框图并写出算法程序.2.过程与方法:(1)在辗转相除法与更相减损术求最大公约数的学习过程中对比我们常见的约分求公因式的方法,比较它们在算法上的区分,并从程序的学习中体会数学的严谨,领悟数学算法计算机处理的结合方式,初步把握把数学算法转化成计算机语言的一般步骤。
(2)仿照秦九韶计算方法,体会古人计算构思的奇妙。
(3)学习各种进位制转换成十进制的计算方法,争辩十进制转换为各种进位制的除k去余法,并理解其中的数学规律.3.情态与价值:(1)通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学进展的贡献;在学习古代数学家解决数学问题的方法的过程中培育严谨的规律思维力量,在利用算法解决数学问题的过程中培育理性的精神和动手实践的力量。
(2)通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分生疏到我国文化历史的悠久。
(3)领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步生疏到计算机与数学的联系.重点:理解辗转相除法与更相减损术求最大公约数的方法;秦九韶算法的特点;各进位制表示数的方法及各进位制之间的转换.难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言;秦九韶算法的先进性理解;除k去余法的理解以及各进位制之间转换的程序框图的设计.教学过程:案例1 辗转相除法与更相减损术一、创设情景,揭示课题1.老师首先提出问题:在学校,我们已经学过求最大公约数的学问,你能求出18与30的公约数吗?2.接着老师进一步提出问题,我们都是利用找公约数的方法来求最大公约数,假如公约数比较大而且依据我们的观看又不能得到一些公约数,我们又应当怎样求它们的最大公约数?比如求8251与6105的最大公约数?这就是我们这一堂课所要探讨的内容。
人教B版必修3高中数学1.3算法案例—秦九韶算法与排序word教案
解:程序框图如下:
例3 用冒泡排序法对数据7,5,3,9,1从小到大进行排序
解:P32
例4 设计冒泡排序法对5个数据进行排序的程序框图.
解: 程序框图如下:
(三)课堂练习
1.利用秦九韶算法计算 .
2.写出用冒泡排序法对5个数据4,11,7,9,6排序的过程中每一趟排序的结果.
3.用直接排序法对例3中的数据从小到大排序.
阅读课本P30—P31面的内容,回答下面的问题:
(1)排序法中的直接插入排序法与冒泡排序法的步骤有什么区别?
(2)冒泡法排序中对5个数字进行排序最多需要多少趟?
(3)在冒泡法排序对5个数字进行排序的每一趟中需要比较大小几次?
游戏:5位同学每人拿一个数字牌在讲台上演示冒泡排序法对5个数据4,11,7,9,6排序的过程,让学生通过观察叙述冒泡排序法的主要步骤.并结合步骤解决例3的问题.
三、课堂小结
(1)秦九韶算法计算多项式的值及程序设计;
(2)数字排序法中的常见的两种排序法直接插入排序法与冒泡排序法;
(3)冒泡法排序的计算机程序框图设计.
作业布置
(时间: )
教学反思:
板书设计:
课题
1.3算法案例——秦九韶算法与排序
总课时
1
教学要求
1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质;
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用.
我们把多项式变形为: 再统计一下计算当 时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。显然少了6次乘法运算。这种算法就叫秦九韶算法.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)怎样求多项式 f(x)=x 5+x 4+x 3+x 2+x+1 当 x=5 时的值呢?
一个自然的做法就是把 5 代入多项式 f(x) ,计算各项的值,然后把它们加起来,这时,
我们一共做了 1+2+3+4=10 次乘法运算, 5 次加法运算 .
另一种做法是先计算 x 2 的值,然后依次计算 x 2·x ,( x2·x) ·x ,(( x2·x) ·x )·x 的值,这
把一个 n 次多项式 f(x)=a nx n+an-1x n-1+… +a1x+a0 改写成如下形式: f(x)=a nxn+an-1xn-1+… +a1x+a0 =(anx n-1+an-1xn-2+… +a1) x+ a0 =(( anxn-2+an-1x n-3+… +a2)x+a 1 )x+a 0 =… =(… (( anx+a n-1) x+an-2) x+ … +a1) x+a0. 求多项式的值时,首先计算最内层括号内一次多项式的值,即
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 个一次式, 可见 v k 的计算要用到
v k-1 的值, 若令
样每次都可以利用上一次计算的结果,这时,我们一共做了
4 次乘法运算, 5 次加法运算 .
第二种做法与第一种做法相比, 乘法的运算次数减少了, 因而能够提高运算效率, 对于
计算机来说, 做一次乘法运算所用的时间比做一次加法运算要长得多,
所以采用第二种做法,
计算机能更快地得到结果 . (2)上面问题有没有更有效的算法呢?我国南宋时期的数学家秦九韶(约 他的著作《数书九章》中提出了下面的算法:
.
(3)计算机的一个很重要的特点就是运算速度快,但即便如此,算法好坏的一个重要标志
仍然是运算的次数 .如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这
样的算法就只能是一个理论的算法 .
(三)应用示例 例 1 已知一个 5 次多项式为 f (x) =5x 5+2x4+3.5x3-2.6x2+1.7x-0.8 ,
计算
x
k 0
(
k=2
,3,
4, … ,n)的值需要 k- 1 次乘法,计算 P3(x 0)的值共需要 9 次运算( 6 次乘法, 3 次加法),
那么计算 P10(x 0)的值共需要 __________ 次运算 . 下面给出一种减少运算次数的算法:
P0(x)=a 0,Pk+1(x)=xP k(x)+a k+1 (k= 0,1, 2,…, n- 1).利用该算法,计算 P3(x 0)的值共需要
.
解: 设 f ( x) =a5x 5+a4x4+a3x 3+a2x2 +a1x+a 0
首先,让我们以 5 次多项式一步步地进行改写:
f ( x) =( a5x 4+a4x3+a3x 2+a2 x+a1) x+a0 =(( a5x3+a 4x 2+ a3x+a 2) x+a1)x+a 0 =((( a5x 2+a4x+ a3) x+a 2) x+a 1) x+a0
法.
思路 2(直接导入) 前面我们学习了辗转相除法与更相减损术,
今天我们开始学习秦九韶算法 .
(二)推进新课、新知探究、提出问题
(1)求多项式 f(x)=x 5+x 4+x3+x 2+x+1 当 x=5 时的值有哪些方法?比较它们的特点 .
(2)什么是秦九韶算法?
(3)怎样评价一个算法的好坏?
讨论结果:
时 案例 2 秦九韶算法
(一)导入新课
思路 1(情境导入)
大家都喜欢吃苹果吧, 我们吃苹果都是从外到里一口一口的吃, 而虫子却是先钻到苹果
里面从里到外一口一口的吃,由此看来处理同一个问题的方法多种多样
.怎样求多项式
f(x)=x 5+x 4+x 3+x 2+x+1 当 x=5 时的值呢?方法也是多种多样的,今天我们开始学习秦九韶算
PRINT “ i=;”i INPUT “ ai=;”a
v=v*x+a
i=i-1
WEND
PRINT v
END 点评:本题是古老算法与现代计算机语言的完美结合,
程序框图和算法语句 ,是一个典型的算法案例 . 变式训练
详尽介绍了思想方法、 算法步骤、
请以 5 次多项式函数为例说明秦九韶算法,并画出程序框图
1202~1261)在
v1=anx+an-1, 然后由内向外逐层计算一次多项式的值,即
v2=v 1x+a n-2, v3=v 2x+a n-3, … vn=v n-1x+a 0, 这样,求 n 次多项式 f (x)的值就转化为求
秦九韶算法 .直到今天,这种算法仍是多项式求值比较先进的算法
v0=an,我们可以得到下面的公式:
v0 an , vk vk 1x an k (k 1,2, , n).
这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现
.
算法步骤如下:
第一步,输入多项式次数 n、最高次的系数 an 和 x 的值 . 第二步,将 v 的值初始化为 an,将 i 的值初始化为 n-1.
第三步,输入 i 次项的系数 ai.
第四步, v=vx+a i ,i=i-1.
第五步,判断 i 是否大于或等于 0.若是,则返回第三步;否则,输出多项式的值
v.
程序框图如下图:
程序: INPUT “ n=;”n INPUT “ an=;”a INPUT “ x=;”x
v=a
i=n-1
WHILE i > =0
=(((( a5x+a4) x+ a3) x+a2) x+a1) x+a0.
上面的分层计算 ,只用了小括号,计算时,首先计算最内层的括号,然后由里向外逐层计算,
直到最外层的括号,然后加上常数项即可 .
程序框图如下图:
例2
已知 n 次多项式
Pn(x)=a 0 xn+a1x n-1+… +an-1x+an,如果在一种算法中,
用秦九韶算法求这个多项式当 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;