1.31辗转相除法.ppt

上传人:豆**** 文档编号:60945574 上传时间:2022-11-19 格式:PPT 页数:35 大小:435KB
返回 下载 相关 举报
1.31辗转相除法.ppt_第1页
第1页 / 共35页
1.31辗转相除法.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《1.31辗转相除法.ppt》由会员分享,可在线阅读,更多相关《1.31辗转相除法.ppt(35页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、一、三维目标一、三维目标(a a)知识与技能)知识与技能 1.1.理解辗转相除法与更相减损术中蕴含的数学原理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析。理,并能根据这些原理进行算法分析。2.2.基本能根据算法语句与程序框图的知识设计完基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。整的程序框图并写出算法程序。(b b)过程与方法)过程与方法 在辗转相除法与更相减损术求最大公约数的学习在辗转相除法与更相减损术求最大公约数的学习过程中对比我们常见的约分求公因式的方法,比较它过程中对比我们常见的约分求公因式的方法,比较它们在算法上的区别,并从程序的学习

2、中体会数学的严们在算法上的区别,并从程序的学习中体会数学的严谨,领会数学算法计算机处理的结合方式,初步掌握谨,领会数学算法计算机处理的结合方式,初步掌握把数学算法转化成计算机语言的一般步骤。把数学算法转化成计算机语言的一般步骤。案例案例1 辗转相除法与更相减损术辗转相除法与更相减损术(c c)情感态度与价值观)情感态度与价值观 1.1.通过阅读中国古代数学中的算法案例,体会中通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。国古代数学对世界数学发展的贡献。2.2.在学习古代数学家解决数学问题的方法的过程在学习古代数学家解决数学问题的方法的过程中培养严谨的逻辑思维能力,在利

3、用算法解决数学问题中培养严谨的逻辑思维能力,在利用算法解决数学问题的过程中培养理性的精神和动手实践的能力。的过程中培养理性的精神和动手实践的能力。二、教学重难点二、教学重难点 重点:理解辗转相除法与更相减损术求最大公约数重点:理解辗转相除法与更相减损术求最大公约数的方法。的方法。难点:把辗转相除法与更相减损术的方法转换成程难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言。序框图与程序语言。三、学法三、学法 在理解最大公约数的基础上去发现辗转相除法与更在理解最大公约数的基础上去发现辗转相除法与更相减损术中的数学规律,并能模仿已经学过的程序框图相减损术中的数学规律,并能模仿已经学过的程

4、序框图与算法语句设计出辗转相除法程序框图与算法程序。与算法语句设计出辗转相除法程序框图与算法程序。3 59 15 问题问题11:在小学,我们已经学过求最大公约数:在小学,我们已经学过求最大公约数的知识,你能求出的知识,你能求出1818与与3030的最大公约数吗?的最大公约数吗?创设情景,揭示课题创设情景,揭示课题18 30231818和和3030的最大公约的最大公约数是数是23=6.23=6.先用两个数公有的先用两个数公有的质因数质因数连续去除连续去除,一直除到所得一直除到所得的商是互质数为止的商是互质数为止,然后然后把所有的除数连乘起来把所有的除数连乘起来.例:求下面两个正整数的最大公约数:

5、例:求下面两个正整数的最大公约数:(1)求)求25和和35的最大公约数的最大公约数(2)求)求49和和63的最大公约数的最大公约数25(1)5535749(2)77639所以,所以,25和和35的最大公约数为的最大公约数为5所以,所以,49和和63的最大公约数为的最大公约数为7思考:除了用这种方法外还有没有其它方法?思考:除了用这种方法外还有没有其它方法?问题问题2:2:我们都是利用找公约数的方法来求最大我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们又不能得到一些公约数,我们又应该

6、怎样求它们的最大公约数?比如求的最大公约数?比如求82518251与与61056105的最大公约数的最大公约数?研探新知研探新知1.1.辗转相除法辗转相除法:例例1 1 求两个正数求两个正数82518251和和61056105的最大公约数。的最大公约数。分析:分析:82518251与与61056105两数都比较大,而且没两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数据已有的知识即可求出最大公约数.解:解:82518251610561051 121462146显然显然82518251与与61056105的最大公约

7、数也必是的最大公约数也必是21462146的约数,同样的约数,同样61056105与与21462146的公约数也必是的公约数也必是82518251的约数,所以的约数,所以82518251与与61056105的最大公约数也是的最大公约数也是61056105与与21462146的最大公约数。的最大公约数。研探新知研探新知1.1.辗转相除法辗转相除法:例例1 1 求两个正数求两个正数82518251和和61056105的最大公约数。的最大公约数。解:解:82518251610561051 12146;2146;6105214621813;214618131333;18133335148;333148

8、237;1483740.则则3737为为82518251与与61056105的最大公约数。的最大公约数。以上我们求最大公约数的方法就是辗转相以上我们求最大公约数的方法就是辗转相除法。也叫欧几里德算法,它是由欧几里德在除法。也叫欧几里德算法,它是由欧几里德在公元前公元前300300年左右首先提出的。年左右首先提出的。完整的过程完整的过程8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0例:例:用辗转相除法求用辗转相除法求225和和135的最大公约数的最大公约数225=1351+90135=

9、901+4590=452显然显然37是是148和和37的最大公约数,的最大公约数,也就是也就是8251和和6105的最大公约的最大公约数数 显然显然45是是90和和45的最大公约数,也就是的最大公约数,也就是225和和135的最大公约数的最大公约数 思考思考1:从上面的两个例子中可以看出计:从上面的两个例子中可以看出计算的规律是什么?算的规律是什么?S1:用大数除以小数:用大数除以小数S2:除数变成被除数,余数变成除数:除数变成被除数,余数变成除数S3:重复:重复S1,直到余数为,直到余数为0 以上我们求最大公约数的以上我们求最大公约数的方法就是辗转相除法也叫欧方法就是辗转相除法也叫欧几里德算

10、法,它是由欧几里德几里德算法,它是由欧几里德在公元前在公元前300年左右首先提出年左右首先提出的利用辗转相除法求最大公的利用辗转相除法求最大公约数的。约数的。练习练习1 1:利用辗转相除法求两数:利用辗转相除法求两数40814081与与2072320723的最大公约数的最大公约数.(53)(53)20723=40815+318;4081=31812+265;318=2651+53;265=535+0.利用辗转相除法求最大公约数的步骤如下:利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数第一步:用较大的数m m除以较小的数除以较小的数n n得到得到一个商一个商q q0 0和一个余数和一个

11、余数r r0 0;(m=nq(m=nq0 0+r+r0 0)第二步:若第二步:若r r0 00 0,则,则n n为为m m,n n的最大公约的最大公约数;若数;若r r0 000,则用除数,则用除数n n除以余数除以余数r r0 0得到一个得到一个商商q q1 1和一个余数和一个余数r r1 1;(n=r(n=r0 0qq1 1+r+r1 1)第三步:若第三步:若r r1 10 0,则,则r r0 0为为m m,n n的最大公约的最大公约数;若数;若r r1 100,则用除数,则用除数r r0 0除以余数除以余数r r1 1得到一个得到一个商商q q2 2和一个余数和一个余数r r2 2;(r

12、(r0 0=r=r1 1qq2 2+r+r2 2)依次计算直至依次计算直至r rn n0 0,此时所得到的,此时所得到的r rn-1n-1 即为所求的最大公约数。即为所求的最大公约数。思考:你能把辗转相除法编成一个计算机程序吗?(1)(1)、算法步骤:、算法步骤:第一步:输入两个正整数第一步:输入两个正整数m,n(mn).第二步:计算第二步:计算m除以除以n所得的余数所得的余数r.第三步:第三步:m=n,n=r.第四步:若第四步:若r0,则则m,n的最大公约数等于的最大公约数等于m;否则转到第二步否则转到第二步.第五步:输出最大公约数第五步:输出最大公约数m.(2)(2)、程序框图:、程序框图

13、:开始开始输入输入m,n r=m MOD n m=nr=0?是是否否 n=r 输出输出m结束结束(3)(3)、程序:、程序:INPUT “m,n=“;m,nDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND否否4.4.辗转相除法的程序框图及程序辗转相除法的程序框图及程序:开始开始 输入两个正数输入两个正数m,nmn?r=m MOD nr0?输出输出n结束结束m=xm=nn=r否否是是是是INPUT m,nIF mn THEN x=n n=m m=xEND IFr=m MOD nWHILE r0 m=nn=rr=m MOD n WENDPRINT nENDx

14、=nn=m2.2.更相减损术更相减损术:我国早期也有解决求最大公约数问题的算我国早期也有解决求最大公约数问题的算法,就是更相减损术。法,就是更相减损术。更相减损术求最大公约数的步骤如下:可更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母半者半之,不可半者,副置分母子之数,以子之数,以少减多,更相减损,求其等也,以等数约之。少减多,更相减损,求其等也,以等数约之。翻译出来为:第一步:任意给出两个正数;翻译出来为:第一步:任意给出两个正数;判断它们是否都是偶数。若是,用判断它们是否都是偶数。若是,用2 2约简;若不是,约简;若不是,执行第二步。执行第二步。第二步:以较大的数减去较小

15、的数,接着把第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。继续较小的数与所得的差比较,并以大数减小数。继续这个操作,直到所得的数相等为止,则这个数(等这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。数)就是所求的最大公约数。更相减损术更相减损术算法步骤算法步骤:第四步:第四步:输出最大公约数输出最大公约数b.第三步:第三步:如果如果br,那么把那么把b赋给赋给a,把把r赋给赋给b;否则把否则把r赋给赋给a,执行第二步;,执行第二步;第二步:第二步:把把a-b的差赋予的差赋予r;第一步:第一步:输入两个正整数输入两个正整数a,b(ab,a,b

16、都不是偶数都不是偶数);例例2 2 用更相减损术求用更相减损术求9898与与6363的最大公约数的最大公约数.解:由于解:由于6363不是偶数,把不是偶数,把9898和和6363以大数以大数减小数,并辗转相减,减小数,并辗转相减,即:即:986335;633528;35287;28721;21714;1477.所以,所以,9898与与6363的最大公约数是的最大公约数是7 7。练习练习2 2:用更相减损术求两个正数:用更相减损术求两个正数8484与与7272的最大的最大公约数。公约数。(12)(12)3.3.辗转相除法与更相减损术的比较辗转相除法与更相减损术的比较:(1 1)都是求最大公约数的

17、方法,计算上辗)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主转相除法以除法为主,更相减损术以减法为主;计算次数上辗转相除法计算次数相对较少,特计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别别当两个数字大小区别较大时计算次数的区别较明显。较明显。(2 2)从结果体现形式来看,辗转相除法体)从结果体现形式来看,辗转相除法体现结果是以相除余数为现结果是以相除余数为0 0则得到,而更相减损术则得到,而更相减损术则以减数与差相等而得到则以减数与差相等而得到.(2)辗转相除法辗转相除法算法步骤算法步骤第一步:输入两个正整数第一步:输入两个正整数

18、a,b(ab);第二步:把第二步:把a/b的余数赋给的余数赋给r;第三步:如果第三步:如果r 0,那么把那么把b赋给赋给a,把把r赋给赋给b,转转到第二步到第二步;否则转到第四步;否则转到第四步;第四步:输出最大公约数第四步:输出最大公约数b.案例案例2 秦九韶算法秦九韶算法一、三维目标一、三维目标(a a)知识与技能)知识与技能了解秦九韶算法的计算过程,并理解利用秦九韶了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。算法可以减少计算次数提高计算效率的实质。(b b)过程与方法)过程与方法模仿秦九韶计算方法,体会古人计算构思的巧妙模仿秦九韶计算方法,体会古人计

19、算构思的巧妙.(c c)情感态度与价值观)情感态度与价值观通过对秦九韶算法的学习,了解中国古代数学家通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。对数学的贡献,充分认识到我国文化历史的悠久。二、教学重难点二、教学重难点重点:重点:1.1.秦九韶算法的特点秦九韶算法的特点;难点难点:2.:2.秦九韶算法的先进性理解秦九韶算法的先进性理解 .秦九韶(约秦九韶(约1202-1261),字道古),字道古,四川安岳人。先后在湖北,安徽,四川安岳人。先后在湖北,安徽,江苏,浙江等地做官,江苏,浙江等地做官,1261年左年左右被贬至梅州,(今广东梅县),右被贬至梅州,

20、(今广东梅县),不久死于任所。他与李冶,杨辉,不久死于任所。他与李冶,杨辉,朱世杰并称宋元数学四大家。早年朱世杰并称宋元数学四大家。早年在杭州在杭州“访习于太史,又尝从隐君访习于太史,又尝从隐君子受数学子受数学”,1247年写成著名的年写成著名的数书九章数书九章。数书九章数书九章全书全书凡凡18卷,卷,81题,分为九大类。其题,分为九大类。其最重要的数学成就最重要的数学成就-“大衍总数大衍总数术术”(一次同余组解法)与(一次同余组解法)与“正负正负开方术开方术(高次方程数值解法),使高次方程数值解法),使这部宋代算经在中世纪世界数学史这部宋代算经在中世纪世界数学史上占有突出的地位。上占有突出的

21、地位。教学设计教学设计问题问题1设计求多项式设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值的算法时的值的算法,并写出程序并写出程序.x=5f=2x5-5x4-4x3+3x2-6x+7PRINT fEND程序程序点评点评:上述算法一共做了上述算法一共做了15次乘法运算次乘法运算,5次次加法运算加法运算.优点是简单优点是简单,易懂易懂;缺点是不通用缺点是不通用,不能不能解决任意多项多求值问题解决任意多项多求值问题,而且计算效率不高而且计算效率不高.这析计算上述多项式的值这析计算上述多项式的值,一共需要一共需要9次次乘法运算乘法运算,5次加法运算次加法运算.问题问题2

22、有没有更高效的算法有没有更高效的算法?分析分析:计算计算x的幂时的幂时,可以利用前面的计算结可以利用前面的计算结果果,以减少计算量以减少计算量,即先计算即先计算x2,然后依次计算然后依次计算的值的值.第二种做法与第一种做法相比第二种做法与第一种做法相比,乘法的运乘法的运算次数减少了算次数减少了,因而能提高运算效率因而能提高运算效率.而且对于而且对于计算机来说计算机来说,做一次乘法所需的运算时间比做做一次乘法所需的运算时间比做一次加法要长得多一次加法要长得多,因此第二种做法能更快地因此第二种做法能更快地得到结果得到结果.问题问题3能否探索更好的算法能否探索更好的算法,来解决任意多来解决任意多项式

23、的求值问题项式的求值问题?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+7v0=2v1=v0 x-5=25-5=5v2=v1x-4=55-4=21v3=v2x+3=215+3=108v4=v3x-6=1085-6=534v5=v4x+7=5345+7=2677所以所以,当当x=5时时,多项式的值是多项式的值是2677.这种求多项式值的方法就叫这种求多项式值的方法就叫秦九韶算法秦九韶算法.例例1:用秦九韶算法求多项式用秦

24、九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值时的值.解法一解法一:首先将原多项式改写成如下形式首先将原多项式改写成如下形式:f(x)=(2x-5)x-4)x+3)x-6)x+7v0=2 v1=v0 x-5=25-5=5v2=v1x-4=55-4=21v3=v2x+3=215+3=108v4=v3x-6=1085-6=534v5=v4x+7=5345+7=2677所以所以,当当x=5时时,多多项式的值是项式的值是2677.然后由内向外逐层计算一次多项式的值然后由内向外逐层计算一次多项式的值,即即若将若将x的值代入变形后的式子中,那么求的值代入变形后的式子中

25、,那么求值的计算过程是怎样的值的计算过程是怎样的?计算的过程可以列表表示为:计算的过程可以列表表示为:多项式多项式x系系数数25436710251055402670变形后变形后x的的系数系数25211085342677f(x)=(2x5)x4)x+3)x6)x+7,x=52 -5 -4 3 -6 7x=5105252110510854053426702677所以所以,当当x=5时时,多项式的值是多项式的值是2677.原多项式原多项式的系数的系数多项式多项式的值的值.例例1:用秦九韶算法求多项式用秦九韶算法求多项式 f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值时的值.解法二

26、解法二:列表列表22 -5 0 -4 3 -6 0 x=5105252512512160560830403034所以所以,当当x=5时时,多项式的值是多项式的值是15170.练一练练一练:用秦九韶算法求多项式用秦九韶算法求多项式 f(x)=2x6-5x5-4x3+3x2-6x当当x=5时的值时的值.解解:原多项式先化为原多项式先化为:f(x)=2x6-5x5+0 x4-4x3+3x2-6x+0列表列表21517015170 注意注意:n次多项式有次多项式有n+1项项,因此缺少哪一项因此缺少哪一项应将其系数补应将其系数补0.f(x)=anxn+an-1xn-1+an-2xn-2+a1x+a0.我

27、们可以改写成如下形式我们可以改写成如下形式:f(x)=(anx+an-1)x+an-2)x+a1)x+a0.求多项式的值时求多项式的值时,首先计算最内层括号内一首先计算最内层括号内一次多项式的值次多项式的值,即即 v1=anx+an-1,然后由内向外逐层计算一次多项式的值然后由内向外逐层计算一次多项式的值,即即一般地一般地,对于一个对于一个n次多项式次多项式v2=v1x+an-2,v3=v2x+an-3,vn=vn-1x+a0.这样这样,求求n次多项式次多项式f(x)的值就转化为求的值就转化为求n个个一次多项式的值一次多项式的值.这种算法称为这种算法称为秦九韶算法秦九韶算法.点评点评:秦九韶算

28、法是求一元多项式的秦九韶算法是求一元多项式的值的一种方法值的一种方法.它的特点是它的特点是:把求一个把求一个n次多项式的值次多项式的值转化为求转化为求n个一次多项式的值个一次多项式的值,通过这种转通过这种转化化,把运算的次数由至多把运算的次数由至多n(n+1)/2次乘法次乘法运算和运算和n次加法运算次加法运算,减少为减少为n次乘法运算次乘法运算和和n次加法运算次加法运算,大大提高了运算效率大大提高了运算效率.v1=anx+an-1,v2=v1x+an-2,v3=v2x+an-3,vn=vn-1x+a0.观察上述秦九韶算法中的观察上述秦九韶算法中的n个一次式个一次式,可可见见vk的计算要用到的计

29、算要用到vk-1的值的值.若令若令v0=an,得得v0=an,vK=vK-1x+an-k(k=1,2,n这是一个在秦九韶算法中反复执行的步这是一个在秦九韶算法中反复执行的步骤骤,因此可用循环结构来实现因此可用循环结构来实现.问题问题画出程序框图画出程序框图,表示用秦九韶算法求表示用秦九韶算法求5次多次多项式项式f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0当当x=x0 (x0是任意实数是任意实数)时的值的过程时的值的过程,然后写出程序然后写出程序.否否程序框图程序框图开始开始输入输入a0,a1,a2,a3,a4,a5输入输入x0n5?n=1v=a5v=vx0+a5-nn=n+1输出输出v结束结束是是INPUT a0,a1,a2,a3,a4,a5INPUT x0n=1v=a5WHILE n=5 v=vx0+a5-n n=n+1WENDPRINT vEND程序程序作业作业:课本课本P45页练习页练习T1(1)(2),T2;

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com