辗转相除法(Euclidean Algorithm)极简证明
来源:互联网 发布:淘宝卖活鱼 编辑:程序博客网 时间:2024/06/05 16:27
辗转相除法的目的:求两个树的最大公约数
设两数为a、b(a > b),求它们最大公约数的步骤如下:
设q = a / b,r = a % b, 得a=bq+r(0≤r<b)。
1)若r = 0, 则b是a和b的最大公约数。
2)若r≠0,则继续考虑。可以证明:a 和 b 的最大公约数也是 b 和 r 的最大公约数
那么在第二种情况下公约数的关系就有一个递推传递的关系。
就是 a b 的公约数等于 b r(a % b)的公约数(a=bq+r)在后者不等于零的情况下,这个循环可以一直递推下去。
就是b r(a%b)之间的公约数 等于r(a % b) b%r的的公约数
…..
只到第二个 第一个数%第二个数 等于0,这时候的第第一个数:a',是整个过程中每一对数的最大公约,也是最开始的a 和b的最大公约数
一句话总结:给出两个自然数 first 和 second:检查 second 是否为0;如果是,则 这时候的first 为最大公约数,或者说为整个递推循环中的每一对树的最大公约数。如果second不为0,则分别用 second 和 first%second 作为下一步分 第一个数 和 第二个数 重复这一递推步骤
代码
int gcd(int first int second)
{
return second==0?first:gcd(second, first%second)
}
最大公约数用处:
最小公倍数 = 两数之积 / 最大公约数
0 0
- 辗转相除法(Euclidean Algorithm)极简证明
- 辗转相除法, 又名欧几里德算法(Euclidean algorithm)
- 证明辗转相除法
- 辗转相除法证明
- 辗转相除法证明
- 辗转相除法简单证明
- 辗转相除法的证明
- 辗转相除法的证明
- 辗转相除法的证明
- 辗转相除法的证明
- 最大公约数 - 辗转相除法证明
- 欧几里得算法(辗转相除法)证明过程
- 辗转相除法证明+最小公倍数证明+其他相关证明
- 辗转相除法证明+最小公倍数证明+其他相关证明
- 辗转相除法证明+最小公倍数证明+其他相关证明
- 最大公约数(辗转相除法)证明+最小公倍数证明+其他相关证明
- 辗转相除法求得最大公约数的证明
- 辗转相除法证明及复杂度计算
- Hybris 入门介绍
- iOS开发~调试
- 语音控制的tab选项卡
- 笔记33--网络
- Quill – 可以灵活自定义的开源的富文本编辑器
- 辗转相除法(Euclidean Algorithm)极简证明
- 欧拉计划013(ProjectEuler013):求出10个数乘积最大的
- 程序员的一生
- 新版本的php 降低错误级别
- overload与override的区别
- FPGA工作原理
- myeclipse-10.7-offline-installer-windows安装图解及注意事项
- sdfgsdhgfjkdsher
- .NET 应用如何连接到 MongoDB 数据库