欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    1.3 算法案例.ppt

    • 资源ID:2312973       资源大小:534.50KB        全文页数:24页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    1.3 算法案例.ppt

    1.3 算法案例,冷水江市第一中学 杨玉林,最大公约数的求法,1.回顾算法的三种表述:,自然语言,程序框图,程序语言,(三种逻辑结构),(五种基本语句),2.,小学学过的求两个数最大公约数的方法?,先用两个公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来.,思考,(1)求两个正整数的最大公约数,例.求30和75的最大公约数,所以,25和35的最大公约数为5,(2)除了用这种方法外还有没有其它方法?,如何简洁的求8256和6105的最大公约数?,30,3,10,75,25,5,2,5,开始,i=m,输入:m,n,m MOD i0或 n MOD i0?,i=i-1,输出:i,结束,N,Y,mn?,t=m,m=n,n=t,N,Y,穷举法(也叫枚举法)步骤:从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数。,A.穷举法,Input“m,n=“;m,nIf mn then Swap m,nend if i=mWhile m mod io or n mod i0 i=i-1wendPrint iend,B.辗转相除法(欧几里得算法),下面我们介绍用辗转相除法求8251和6105的最大公约数的过程,第一步:用两数中较大的数除以较小的数,求得商和余数,结论:8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。,第二步:对6105和2146重复第一步的做法,8251=61051+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的最大公约数,思考1:从上面的两个例子可以看出计算的规律是什么?,S1:用大数除以小数,S2:除数变成被除数,余数变成除数,S3:重复S1,直到余数为0,辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。,m=n q r,用程序框图表示出右边的过程,r=m MOD n,m=n,n=r,r=0?,是,否,思考2:辗转相除法中的关键步骤是哪种逻辑结构?,辗转相除法(欧几里得算法),(1)算理:所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。,(2)算法步骤,第一步:输入两个正整数m,n(mn).第二步:计算m除以n所得的余数r.第三步:m=n,n=r.第四步:若r0,则m,n的最大公约数等于m;否则转到第二步.第五步:输出最大公约数m.,(3)程序框图,(4)程序,INPUT“m,n=“;m,nIf mn thenSwap m,nend ifDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND,九章算术更相减损术,算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。,第一步:任意给定两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。,第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。,例1 用更相减损术求98与63的最大公约数,解:由于63不是偶数,把98和63以大数减小数,并辗转相减,9863356335283528728721217211477,所以,98和63的最大公约数等于7,先约简,再求21与18的最大公约数,然后乘以两次约简的质因数4,2、更相减损术,(1)算理:所谓更相减损术,就是对于给定的两个数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数便为原来两个数的最大公约数。,(2)算法步骤,第一步:输入两个正整数a,b(ab);第二步:若a不等于b,则执行第三步;否则转到第五步;第三步:把a-b的差赋予r;第四步:如果br,那么把b赋给a,把r赋给b;否则把r赋给a,执行第二步;第五步:输出最大公约数b.,(3)程序框图,(4)程序,INPUT“a,b=“;a,bWHILE ab r=a-b IF br THEN a=b b=r ELSE a=r END IFWENDPRINT bEND,输入a,b,是,否,b=r,a=b,r=a-b,a=r,否,是,INPUT“a,b=“;a,bi=0r1=a mod 2r2=b mod 2While r1=0 and r2=0 a=a/2 b=b/2 r1=a mod 2 r2=b mod 2 i=i+1WendWHILE ab r=a-b IF br THEN a=b b=r ELSE a=r END IFWENDPRINT b*2iEND,程序:INPUT“a,b”;a,bi=0WHILE a MOD 2=0 AND b MOD 2=0 a=a/2 b=b/2 i=i+1 WEND DOIF ba THENt=aa=bb=tEND IFa=a-bLOOP UNTIL a=bPRINT a*2iEND,练习:求324、243、135这三个数的最大公约数。,思路分析:求三个数的最大公约数可以先求出两个数的最大公约数,第三个数与前两个数的最大公约数的最大公约数即为所求。,思考?,设计一个称序,求已知n个正整数的最大公约数?,input“n=”;nprint“i=”;1input“ai=”;ai=1while i=n-1 i=i+1print“i=”;iinput“ai=”;b Do r=a mod b a=b b=r loop until r=0wendprint“The max is”;aend,辗转相除法,INPUT“a1”;aInput“n=“,nm=1While ma THEN t=a a=b b=t END IF a=a-b LOOP UNTIL a=b a=a*2iWendPrint“The max is”;aEND,更相减损术,比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到,小结,再 见,

    注意事项

    本文(1.3 算法案例.ppt)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开