必修三1.3算法初步算法案例.ppt
- 文档编号:2699769
- 上传时间:2022-11-08
- 格式:PPT
- 页数:32
- 大小:290.50KB
必修三1.3算法初步算法案例.ppt
《必修三1.3算法初步算法案例.ppt》由会员分享,可在线阅读,更多相关《必修三1.3算法初步算法案例.ppt(32页珍藏版)》请在冰豆网上搜索。
案例案例1辗转相除法与更相减损术辗转相除法与更相减损术35915问题问题11:
在小学,我们已经学过求最大公约数:
在小学,我们已经学过求最大公约数的知识,你能求出的知识,你能求出1818与与3030的最大公约数吗?
的最大公约数吗?
创设情景,揭示课题创设情景,揭示课题1830231818和和3030的最大公约的最大公约数是数是23=6.23=6.先用两个数公有的先用两个数公有的质因数质因数连续去除连续去除,一直除到所得一直除到所得的商是互质数为止的商是互质数为止,然后然后把所有的除数连乘起来把所有的除数连乘起来.问题问题2:
2:
我们都是利用找公约数的方法来求最大我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们又不能得到一些公约数,我们又应该怎样求它们的最大公约数?
比如求的最大公约数?
比如求82518251与与61056105的最大公约数的最大公约数?
研探新知研探新知1.1.辗转相除法辗转相除法:
例例11求两个正数求两个正数82518251和和61056105的最大公约数。
的最大公约数。
分析:
分析:
82518251与与61056105两数都比较大,而且没两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数据已有的知识即可求出最大公约数.解:
解:
82518251610561051121462146显然显然82518251与与61056105的最大公约数也必是的最大公约数也必是21462146的约数,同样的约数,同样61056105与与21462146的公约数也必是的公约数也必是82518251的约数,所以的约数,所以82518251与与61056105的最大公约数也是的最大公约数也是61056105与与21462146的最大公约数。
的最大公约数。
研探新知研探新知1.1.辗转相除法辗转相除法:
例例11求两个正数求两个正数82518251和和61056105的最大公约数。
的最大公约数。
解:
解:
8251825161056105112146;2146;6105214621813;214618131333;18133335148;333148237;1483740.则则3737为为82518251与与61056105的最大公约数。
的最大公约数。
以上我们求最大公约数的方法就是辗转相以上我们求最大公约数的方法就是辗转相除法。
也叫欧几里德算法,它是由欧几里德在除法。
也叫欧几里德算法,它是由欧几里德在公元前公元前300300年左右首先提出的。
年左右首先提出的。
完整的过程完整的过程8251=61051+21466105=21462+18132146=18131+3331813=335+14833=1482+37148=374+0显然显然37是是148和和37的最大的最大公约数,也就是公约数,也就是8251和和6105的最大公约数的最大公约数S1:
用大数除以小数:
用大数除以小数S2:
除数变成被除数,余数变成除数:
除数变成被除数,余数变成除数S3:
重复:
重复S1,直到余数为,直到余数为0利用辗转相除法求最大公约数的步骤如下:
利用辗转相除法求最大公约数的步骤如下:
第一步:
用较大的数第一步:
用较大的数mm除以较小的数除以较小的数nn得到得到一个商一个商qq00和一个余数和一个余数rr00;(m=nq(m=nq00+r+r00)第二步:
若第二步:
若rr0000,则,则nn为为mm,nn的最大公约的最大公约数;若数;若rr0000,则用除数,则用除数nn除以余数除以余数rr00得到一个得到一个商商qq11和一个余数和一个余数rr11;(n=r(n=r00qq11+r+r11)第三步:
若第三步:
若rr1100,则,则rr00为为mm,nn的最大公约的最大公约数;若数;若rr1100,则用除数,则用除数rr00除以余数除以余数rr11得到一个得到一个商商qq22和一个余数和一个余数rr22;(r(r00=r=r11qq22+r+r22)依次计算直至依次计算直至rrnn00,此时所得到的,此时所得到的rrn-1n-1即为所求的最大公约数。
即为所求的最大公约数。
练习练习11:
利用辗转相除法求两数:
利用辗转相除法求两数40814081与与2072320723的最大公约数的最大公约数.20723=40815+318;4081=31812+265;318=2651+53;265=535+0.2.2.更相减损术更相减损术:
我国早期也有解决求最大公约数问题的算我国早期也有解决求最大公约数问题的算法,就是更相减损术。
法,就是更相减损术。
更相减损术求最大公约数的步骤如下:
可更相减损术求最大公约数的步骤如下:
可半者半之,不可半者,副置分母半者半之,不可半者,副置分母子之数,以子之数,以少减多,更相减损,求其等也,以等数约之。
少减多,更相减损,求其等也,以等数约之。
翻译出来为:
第一步:
任意给出两个正数;翻译出来为:
第一步:
任意给出两个正数;判断它们是否都是偶数。
若是,用判断它们是否都是偶数。
若是,用22约简;若不是,约简;若不是,执行第二步。
执行第二步。
第二步:
以较大的数减去较小的数,接着把第二步:
以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。
继续较小的数与所得的差比较,并以大数减小数。
继续这个操作,直到所得的数相等为止,则这个数(等这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。
数)就是所求的最大公约数。
例例22用更相减损术求用更相减损术求9898与与6363的最大公约数的最大公约数.解:
由于解:
由于6363不是偶数,把不是偶数,把9898和和6363以大数以大数减小数,并辗转相减,减小数,并辗转相减,即:
即:
986335;633528;35287;28721;21714;1477.所以,所以,9898与与6363的最大公约数是的最大公约数是77。
先约简,再求先约简,再求21与与18的最大公约数的最大公约数,然后乘以然后乘以两次约简的质因数两次约简的质因数4练习练习22:
用更相减损术求两个正数:
用更相减损术求两个正数8484与与7272的最大的最大公约数。
公约数。
3.3.辗转相除法与更相减损术的比较辗转相除法与更相减损术的比较:
(11)都是求最大公约数的方法,计算上辗)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主转相除法以除法为主,更相减损术以减法为主;计算次数上辗转相除法计算次数相对较少,特计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别别当两个数字大小区别较大时计算次数的区别较明显。
较明显。
(22)从结果体现形式来看,辗转相除法体)从结果体现形式来看,辗转相除法体现结果是以相除余数为现结果是以相除余数为00则得到,而更相减损术则得到,而更相减损术则以减数与差相等而得到则以减数与差相等而得到.案例案例2秦九韶算法秦九韶算法教学设计教学设计问题问题1设计求多项式设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值的算法时的值的算法,并写出程序并写出程序.x=5f=2x5-5x4-4x3+3x2-6x+7PRINTfEND程序程序点评点评:
上述算法一共做了上述算法一共做了15次乘法运算次乘法运算,5次次加法运算加法运算.优点是简单优点是简单,易懂易懂;缺点是不通用缺点是不通用,不能不能解决任意多项多求值问题解决任意多项多求值问题,而且计算效率不高而且计算效率不高.这析计算上述多项式的值这析计算上述多项式的值,一共需要一共需要9次次乘法运算乘法运算,5次加法运算次加法运算.问题问题2有没有更高效的算法有没有更高效的算法?
分析分析:
计算计算x的幂时的幂时,可以利用前面的计算结可以利用前面的计算结果果,以减少计算量以减少计算量,即先计算即先计算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+7v0=2v1=v0x-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:
用秦九韶算法求多项式用秦九韶算法求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值时的值.解法一解法一:
首先将原多项式改写成如下形式首先将原多项式改写成如下形式:
f(x)=(2x-5)x-4)x+3)x-6)x+7v0=2v1=v0x-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.然后由内向外逐层计算一次多项式的值然后由内向外逐层计算一次多项式的值,即即练一练练一练:
用秦九韶算法求多项式用秦九韶算法求多项式f(x)=2x6-5x5-4x3+3x2-6x当当x=5时的值时的值.解解:
原多项式先化为原多项式先化为:
f(x)=2x6-5x5+0x4-4x3+3x2-6x+0=(2x-5)x+0)x-4)x+3)x-6)x+0注意注意:
n次多项式有次多项式有n+1项项,因此缺少哪一项因此缺少哪一项应将其系数补应将其系数补0.v0=2v1=v0x-5=25-5=5v2=v1x+0=55+0=25v3=v2x-4=255-4=125-4=121v4=v3x+3=1215+3=605+3=608v5=v4x-6=6085-6=3040-6=3034v6=v5x+0=30345+0=15170+0=15170f(x)=anxn+an-1xn-1+an-2xn-2+a1x+a0.我们可以改写成如下形式我们可以改写成如下形式:
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个个一次多项式的值一次多项式的值.这种算法称为这种算法称为秦九韶算法秦九韶算法.案例案例3进位制进位制问题问题11我们常见的数字都是十进制的我们常见的数字都是十进制的,但但是并不是生活中的每一种数字都是十进制的是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制比如时间和角度的单位用六十进位制,电子计电子计算机用的是二进制算机用的是二进制.那么什么是进位制那么什么是进位制?
不同的不同的进位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 必修 1.3 算法 初步 案例