1140算法案例.ppt
《1140算法案例.ppt》由会员分享,可在线阅读,更多相关《1140算法案例.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、11.4 算算 法法 案案 例例辗转相除法(欧几里得算法)辗转相除法(欧几里得算法)观察求观察求8251和和6105的最大公约数的过程的最大公约数的过程 第一步第一步 用两数中较大的数除以较小的数,求得商和用两数中较大的数除以较小的数,求得商和余数余数 8251=61051+2146结论:结论: 8251和和6105的公约数就是的公约数就是6105和和2146的的公约数,求公约数,求8251和和6105的最大公约数,只要求出的最大公约数,只要求出6105和和2146的公约数就可以了。的公约数就可以了。第二步第二步 对对6105和和2146重复第一步的做法重复第一步的做法6105=21462+1
2、813同理同理6105和和2146的最大公约数也是的最大公约数也是2146和和1813的最大公约数。的最大公约数。 1、求两个正整数的最大公约数、求两个正整数的最大公约数(1)求)求25和和35的最大公约数的最大公约数(2)求)求49和和63的最大公约数的最大公约数2、求、求8251和和6105的最大公约数的最大公约数 25(1) 5535749(2) 77639所以,所以,25和和35的最的最大公约数为大公约数为5所以,所以,49和和63的的最大公约数为最大公约数为7 完整的过程完整的过程8251=61051+2146 6105=21462+1813 2146=18131+3331813=3
3、335+148333=1482+37148=374+0显然显然37是是148和和37的最大公约数,也的最大公约数,也就是就是8251和和6105的最大公约数的最大公约数 你能把辗转你能把辗转相除法编成程序相除法编成程序吗?吗?第一步:任意给定两个正整数,大的数记为第一步:任意给定两个正整数,大的数记为m m, 小的记为小的记为n n;第二步:用第二步:用m m除以除以n n,求得余数,求得余数r r;第三步:判断第三步:判断r r是否为是否为0 0,若,若r=0r=0,则输出,则输出n n, 若若r r0 0,则令,则令m=nm=n,n=rn=r,再返回第二步,再返回第二步. . 算法算法 辗
4、转相除法是一个反复执行直到余数等于辗转相除法是一个反复执行直到余数等于0停止的步骤,停止的步骤,这实际上是一个循环结构。这实际上是一个循环结构。程序框图:程序框图:开始开始输入输入m,nr=m MOD nm=nn=rr=0?否否是是输出输出m结束结束程序伪代码:程序伪代码: INUPU m , nDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND利用辗转相除法求最大公约数的步骤利用辗转相除法求最大公约数的步骤 (1)用较大的数)用较大的数m除以较小的数除以较小的数n得到一个商得到一个商 S0和一个余数和一个余数 R0; (2)若)若 R00,则,则n为为m
5、 , n的最大公约数;若的最大公约数;若R00 ,则用除数则用除数n除以余数除以余数R0得到一个商得到一个商S1和一和一个余数个余数 R1 ; (3)若)若 R10,则则 R1为为m,n的最大公约数;若的最大公约数;若 R10,则用除数,则用除数R0除以余数除以余数R1得到一个商得到一个商S2 和和一个余数一个余数R2; 依次计算直至依次计算直至Rn0,此时所得到的,此时所得到的Rn-1即为所求的最大公约数。即为所求的最大公约数。 二分法二分法 用二分法求方程的近似解或函数的零点可以设计用二分法求方程的近似解或函数的零点可以设计程序用计算机来完成程序用计算机来完成例例: 写出用二分法求方程写出
6、用二分法求方程x220的一个正的近似的一个正的近似解解 (误差不超过误差不超过0.005)的算法的算法 【思路点拨思路点拨】令令f(x)x22,确定有解区间,确定有解区间1,2,用二分,用二分法确定符合限制条件的解即可法确定符合限制条件的解即可 解解 : :算法如下:算法如下: S1:令:令f(x)x22,因为,因为 f(1)0,所以令所以令a1,b2,c0.005; S2:取:取x0(a+b)/2; S3:若:若|ab|c,则进入,则进入S4;否则输出;否则输出x0,结结束算法;束算法; S4:若:若f(x0)0,则进入,则进入S5;否则;否则xx0就是就是方程的根,输出方程的根,输出x0,
7、结束算法;,结束算法; S5:若:若f(a)f(x0)0,则解在,则解在x0,b,用,用x0替替换换a;若;若f(x0)f(a)0)0,则解在,则解在 x0 x0,b b ,用,用x0 x0替换替换a a;若;若 f f( (x0 x0) )f f( (a a)0)0,则解在,则解在 a a,x0 x0 ,用,用x0 x0替换替换b b,返回,返回S2S2. . 变式训练变式训练计算多项式计算多项式 f( (x)= =x5 5x4 4x3 3x2 2x当当x = 5的值的值算法算法1:因为因为f(x) =xxxxx所以所以(5)=55555=3125625125255= 3906算法算法2:
8、先计算的先计算的x2值,然后依次计算值,然后依次计算x2x, (x2x)x,(,(x2x)x)x的值,这样每的值,这样每次都可以利用上一次计算的结果次都可以利用上一次计算的结果. 能否探索更好的算法能否探索更好的算法,来解决任意多来解决任意多项式的求值问题项式的求值问题? 我国南宋时期的数学家我国南宋时期的数学家秦九韶秦九韶(约(约1202126112021261)在他的著作)在他的著作数数书九章书九章中提出了下面的算法:中提出了下面的算法: f(x)=anxn+an-1xn-1+an-2xn-2+a1x+a0.我们可以改写成如下形式我们可以改写成如下形式:f(x)=(anx+an-1)x+a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1140 算法 案例
限制150内