算法案例课(3课时)ppt培训课件

上传人:aa****6 文档编号:54666408 上传时间:2018-09-17 格式:PPT 页数:48 大小:926.50KB
返回 下载 相关 举报
算法案例课(3课时)ppt培训课件_第1页
第1页 / 共48页
算法案例课(3课时)ppt培训课件_第2页
第2页 / 共48页
算法案例课(3课时)ppt培训课件_第3页
第3页 / 共48页
算法案例课(3课时)ppt培训课件_第4页
第4页 / 共48页
算法案例课(3课时)ppt培训课件_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《算法案例课(3课时)ppt培训课件》由会员分享,可在线阅读,更多相关《算法案例课(3课时)ppt培训课件(48页珍藏版)》请在金锄头文库上搜索。

1、算 法 案 例,金太阳新课标资源网 ,(第一课时),1、求两个正整数的最大公约数(短除法),(1)求25和35的最大公约数 (2)求225和135的最大公约数,2、求8251和6105的最大公约数,所以,25和35的最大公约数为5,所以,225和135的最大公约数为45,辗转相除法(欧几里得算法),观察用辗转相除法求8251和6105的最大公约数的过程,第一步 用两数中较大的数除以较小的数,求得商和余数 8251=61051+2146,结论: 8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。,第二步 对61

2、05和2146重复第一步的做法 6105=21462+1813 同理6105和2146的最大公约数也是2146和1813的最大公约数。,思考:从上述的过程你体会到了什么?,完整的过程,8251=61051+2146,6105=21462+1813,2146=18131+333,1813=3335+148,333=1482+37,148=374+0,例2 用辗转相除法求225和135的最大公约数,225=1351+90,135=901+45,90=452,显然37是148和37的最大公约数,也就是8251和6105的最大公约数,显然45是90和45的最大公约数,也就是225和135的最大公约数,

3、思考1:从上面的两个例子可以看出计算的规律是什么?,S1:用大数除以小数,S2:除数变成被除数,余数变成除数,S3:重复S1,直到余数为0,思考: 你能把辗转相除法求任意两个正整数m,n(mn)的最大公约数编成一个计算机程序吗?,1.3.1算法案例-辗转相除法和更相减损术,写算法步骤:,第一步,给定两个正整数m,n 第二步,计算m除以n的余数为r 第三步,m=n,n=r 第四步,若r=0,则m,n的最大公约数等于m,否则,返回第二步。,1.3.1算法案例-辗转相除法和更相减损术,辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。,m = n q r,用程序框图表示出右边

4、的过程,r=m MOD n,m = n,n = r,r=0?,是,否,INPUT m , n DOr=m mod nm=nn=r LOOP UNTIL r=0 PRINT m End,画程序框图,关键:确定框图中所用到的结构,确定循环结构: 1,初始化条件:m,n 2,确定循环体:m=nq+rm=n,n=r 3,设置循环控制条件:r=0 循环结构的类型选择:直到型或当型,1.3.1算法案例-辗转相除法和更相减损术,编制程序:,直到型:INPUT m,nDOr=m MOD nm=nn=rLOOP UNTIL r=0PRINT mEND,1.3.1算法案例-辗转相除法和更相减损术,当型结构:,IN

5、PUT m,n r=1 WHILE r 0 r=m MOD nm=nn=r WEND PRINT m END,只要r0都可以,1.3.1算法案例-辗转相除法和更相减损术,九章算术更相减损术,算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。,第一步:任意给定两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是,则执行第二步。,第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数或这个等数与约简的数的乘积就是所求的最大公约数。,例3 用更相减损术求 225 与 135 的最大公

6、约数,解:由于两数不是偶数,把225和135以大数减小数,并辗转相减,22513590 1359045 904545,所以,225和135的最大公约数等于45,INPUT a,b WHILE abIF ab THENa=a-bELSEb=b-aEND IF WEND PRINT a END,九章算术更相减损术的算法程序语句:,练习: 用辗转相除法求 294 与84的最大公约数,再用更相减损术验证。,思考:求三个数:168,54,264的最大公约数。,算 法 案 例,(第二课时),计算多项式() =当x = 5的值,算法1:,() = =x xxx x x xx x x x x x x x 1,

7、所以(5)=55555,=3125625125255,= 3906,算法2:,(5)=55555,=( (5 ) 5 ) 5 ) 5 ) 5 ,分析:两种算法中各用了几次乘法运算?和几次加法运算?,() =(x+1)x+1)x+1)x+1)x+1,问题1设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序.,点评:上述算法一共做了15次乘法运算,5次加法运算.优点是简单,易懂;缺点是不通用,不能解决任意多项多求值问题,而且计算效率不高.,这析计算上述多项式的值,一共需要9次乘法运算,5次加法运算.,问题2有没有更高效的算法?,分析:计算x的幂时,可以利

8、用前面的计算结果,以减少计算量,即先计算x2,然后依次计算,的值.,第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率.而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.,问题3能否探索更好的算法,来解决任意多项式的求值问题?,f(x)=2x5-5x4-4x3+3x2-6x+7 =(2x4-5x3-4x2+3x-6)x+7 =(2x3-5x2-4x+3)x-6)x+7 =(2x2-5x-4)x+3)x-6)x+7 =(2x-5)x-4)x+3)x-6)x+7,v0=2 v1=v0x-5=25-5=5 v2=v1x-4=55-4=

9、21 v3=v2x+3=215+3=108 v4=v3x-6=1085-6=534 v5=v4x+7=5345+7=2677,所以,当x=5时,多项式的值是2677.,这种求多项式值的方法就叫秦九韶算法.,数书九章秦九韶算法,对该多项式按下面的方式进行改写:,这样改写的目的是什么?,简化计算的次数(尤其是乘法的次数)。,对该多项式按下面的方式进行改写:,要求多项式的值,应该先算最内层的一次多项式的值,即,然后,由内到外逐层计算一次多项式的值,即,最后的一项是什么?,这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。,思考:在求多项式的值上,这是怎样的一个转化?

10、,点评:秦九韶算法是求一元多项式的值的一种方法.它的特点是:把求一个n次多项式的值转化为求n个一次多项式的值,通过这种转化,把运算的次数由至多n(n+1)/2次乘法运算和至多n次加法运算,减少为n次乘法运算和至多n次加法运算,大大提高了运算效率.,例3:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.,解法一:首先将原多项式改写成如下形式 : f(x)=(2x-5)x-4)x+3)x-6)x+7,v0=2 v1=v0x-5=25-5=5 v2=v1x-4=55-4=21 v3=v2x+3=215+3=108 v4=v3x-6=1085-6=534 v5=

11、v4x+7=5345+7=2677,所以,当x=5时,多项式的值是2677.,然后由内向外逐层计算一次多项式的值,即,2 -5 -4 3 -6 7,x=5,10,5,25,21,105,108,540,534,2670,2677,所以,当x=5时,多项式的值是2677.,原多项式的系数,多项式的值.,例3:用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值.,解法二:列表,2,2 -5 0 -4 3 -6 0,x=5,10,5,25,25,125,121,605,608,3040,3034,所以,当x=5时,多项式的值是15170.,练一练:用秦九韶算法求多

12、项式 f(x)=2x6-5x5-4x3+3x2-6x当x=5时的值.,解:原多项式先化为:f(x)=2x6-5x5 +0x4-4x3+3x2-6x+0 列表,2,15170,15170,注意:n次多项式有n+1项,因此缺少哪一项应将其系数补0.,练习:,已知多项式f(x)=2x7-5x5+4x3+x2-x-6 用秦九韶算法求这个多项式当x=2时的值。,v1=anx+an-1,v2=v1x+an-2,v3=v2x+an-3, ,vn=vn-1x+a0.,观察上述秦九韶算法中的n个一次式,可见vk的计算要用到vk-1的值.,若令v0=an,得,这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构

13、来实现.,问题画出程序框图,表示用秦九韶算法求5次多项式f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0当x=x0 (x0是任意实数)时的值的过程,然后写出程序.,否,程序框图,开始,输入a0,a1,a2,a3,a4,a5,输入x0,n5?,n=1,v=a5,v=vx0+a5-n,n=n+1,输出v,结束,是,INPUT a0, a1, a2, a3, a4, a5 INPUT x0 n=1 v=a5 WHILE n=5 v=vx0+a5-nn=n+1 WEND PRINT v END,程序,INPUT “n=”;n INPUT “an=”;an INPUT “x=”; x V=

14、an i=n-1 DO PRINT “i=”;iINPUT “ai=”;aiv=v*x+aii=i-1 LOOP UNTIL i0 PRINT v END,作业: 课本P48页习题1.3A组T2,算法案例,(第三课时),一、进位制,1、什么是进位制?,2、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明,进位制是人们为了计数和运算方便 而约定的记数系统。,1、我们了解十进制吗?所谓的十进制,它是如何构成的?,十进制由两个部分构成,例如:3721,其它进位制的数又是如何的呢?,第一、它有0、1、2、3、4、5、6、7、8、9十个数字;,第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。,(用10个数字来记数,称基数为10),表示有:1个1,2个十, 7个百即7个10的平方, 3个千即3个10的立方,2、 二进制,二进制是用0、1两个数字来描述的。如11001等,()二进制的表示方法,区分的写法:11001(2)或者(11001)2,8进制呢?,如7342(8),k进制呢?,anan-1an-2a2a1(k)?,二、二进制与十进制的转换,1、二进制数转化为十进制数,例1 将二进制数110011(2)化成十进制数,解:,根据进位制的定义可知,所以,110011(2)=51。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号