一种求最大公约数的方法--更相减损术
来源:互联网 发布:topsview监控软件 编辑:程序博客网 时间:2024/05/19 12:28
更相减损术
更相减损术,又称"等值算法"
关于约分问题,实质是如何求分子,分母最大公约数的问题。《九章算术》中介绍了这个方法,叫做”更相减损术”,数学家刘徽对此法进行了明确的注解和说明,是一个实用的数学方法。
例:今有九十一分之四十九,问约之得几何?
我们用(91,49)表示91和49的最大公约数.按刘徽所说,分别列出分子,分母。
“以少减多,更相减损,求其等也,以等数约之,等数约之,即除也,其所以相减者皆等数之重叠,故以等数约之。”
译文如下:
约分的法则是:若分子、分母均为偶数时,可先被2除,否则,将分子与分母之数列在它处,然后以小数减大数,辗转相减,求它们的最大公约数,用最大公约数去约简分子与分母。
其与古希腊欧几里德所著的《几何原本》中卷七第一个命题所论的相同。列式如下:
91 49
42 49
42 7
35 7
28 7
21 7
14 7
7 7
这里得到的7就叫做“等数”,91和49都是这等数的重叠(即倍数),故7为其公约数.而7和7的最大公约数就是7,(7,7)=7,所以(91,49)=(42,7)=(7,7)=7
更相减损术在现代仍有理论意义和实用价值.吴文俊教授说:“在我国,求两数最大公约数即等数,用更相减损之术,将两数以小减大累减以得之,如求24与15的等数,其逐步减损如下表所示:(24,15)->(9,15)->(9,6)->(3,6)->(3,3)
每次所得两数与前两数有相同的等数,两数之值逐步减少,因而到有限步后必然获得相同的两数,也即所求的等数,其理由不证自明。
这个寓理于算不证自明的方法,是完全构造性与机械化的尽可以据此编成程序上机实施”.吴先生的话不仅说明了此法的理论价值,而且指明学习和研究的方向.
更相减损法很有研究价值,它奠定了我国渐近分数,不定分析,同余式论和大衍求一术的理论基础.望能仔细品味。
代码如下:
int gcd(int a,int b){ while(a != b) { if(a>b) a -= b; else b -=a; } return a;}
- 一种求最大公约数的方法--更相减损术
- 求最大公约数-辗转相除法-更相减损术
- 辗转相除法+更相减损法求最大公约数
- 求最大公约数——辗转相除法,更相减损术
- 求最大公约数之辗转相除法、更相减损术及两者结合算法
- (初学者)求最大公约数和最小公倍数之更相减损术
- Python实现更相减损术求解最大公约数
- 更相减损术
- 最大公约数(更相减损法)
- 最大公约数(辗转相除法和更相减损法)
- 蓝桥杯 公倍数 大数 更相减损法 最大公约数
- 更相减损术递归函数实现
- GCD 欧几里得和更相减损术
- 【C语言】最大公约数(更相减损法)和(辗转相除法)
- 一种很少见的求最大公约数和最小公倍数的方法
- C++算法:辗转相除法与更相减损术
- UVALive - 7045 Last Defence (更相减损术)
- BZOJ 1876 [SDOI2009]SuperGCD 高精度 更相减损术
- http://acm.nyist.net/JudgeOnline/problem.php?pid=267
- 用 ODataService 访问 LexisNexis
- C++虚函数剖析(1)
- Linux基础 for Android【读书笔记】
- 使用dom实现隔行变色
- 一种求最大公约数的方法--更相减损术
- 使用dom实现统计所有元素节点
- 二分查找算法
- 用ajax实现仿优酷的视频播放评论不进行刷新
- C++虚函数剖析(2)
- java学习总结
- 尽可能地减小锁对象的作用范围
- POJ 1681 Painter's Problem 高斯消元+DFS枚举
- 不同浏览器的兼容性