更相减损术原理培训讲学.pptVIP

  • 19
  • 0
  • 约小于1千字
  • 约 12页
  • 2020-06-09 发布于浙江
  • 举报
求98与63的最大公约数 方法一: 7 98 63 14 9 方法二: 更相减损术是出自《九章算术》的一种求最大公约数的算法,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。 更相减损术的原理: (a,b)=(a-b,b) 这里将gcd (a,b)简记为(a,b). 更相减损术是辗转相除法(欧几里德算法,Euclid algorithm)的一个特例, 它的原理是(a,b)=(a-nb,b) 下面我们来证明:(a,b)=(a-nb,b) 证:不妨设d是a,b的最大公因子。 即a=rd,b=sd,并且 其中(r,s)=1,即存在x,y,使得xr+ys=1. 从而 a-nb=(r-ns)d,b=sd,且x(r-ns)+(xn+y)s=xr+ys=1,即(r-ns,s)=1 于是:d=(a-nb,b) 于是得证。 九章算术 可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。——《九章算术》 翻译成现代语言如下: 第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。 第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。 其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法,实际上就是辗转相除法。 第一步,给定两个正整数m,n(mn). 第二步,计算m-n所得的差k. 第三步,比较n与k的大小,其中大者用m表 示,小者用n表示. 第四步,若m=n,则m,n的最大公约数等于 m;否则,返回第二步. 该算法的程序框图如何表示? 开始 输入m,n nk m=n 是 输出m 结束 m≠n k=m-n 是 否 = m=k 否 INPUT m,n WHILE mn k=m-n IF nk THEN n=k ELSE m=k END IF WEND PRINT m END m=n 该程序框图对应的程序如何表述?

文档评论(0)

1亿VIP精品文档

相关文档