扩展欧几里得--part1
来源:互联网 发布:卖二手衣服的软件 编辑:程序博客网 时间:2024/06/08 08:48
基础–欧几里得算法
这个是求最大公约数基本算法,由更相减损术优化而来.
–更相减损术
很简单,对于给定的两个数,每次用大的减小的,直到两数相等,所得即为它们的最大公约数.
代码:
int gcd(int a, int b) { while(a != b) { if(a > b) a -= b; else b -= a; } return a;}
加强版V2.0–辗转相除法
在更相减损术实际运用过程中我们会发现如果一个数为100000一个数为1(即相差极大)那复杂度也是O(n)的,那么我们想反正这样减一直到大的小于等于小的,何不用个”%”呢?
因此,辗转相除法就出现了(复杂度最坏也只是log(n))
代码:
int gcd(int a,int b){b?return gcd(b,a%b):return a;}
正确性证明
假设给出两个数a,b,它们最大公约数为g,那么可得a=K1*g,b=K2*g.所以可以发现我们在进行辗转相减过程中所有的最大公约数g始终都还在,只是K1 K2在辗转相减,而K1 K2互质(不然g就不是最大公约数与假设矛盾)。最终这两个系数一定会变成0,1两个数。
阅读全文
0 0
- 扩展欧几里得--part1
- 【欧几里得&扩展欧几里得】
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得&扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得 扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得 & 扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得与扩展欧几里得
- 扩展欧几里得
- 扩展欧几里得
- 扩展欧几里得
- 嵌入式音频处理基础
- 初窥javaScrit权威指南,第七章 数组(1)
- diea导入别人的项目遇到的一丢丢问题
- vue自定义事件 子组件向父组件通信
- TensorFlow学习--tf.reduce_mean()
- 扩展欧几里得--part1
- KNN算法实现(Mnist数据集)
- SHELL 十三问
- CF GYM 100548 International Collegiate Routing Contest(2014ACM西安现场赛Problem I)不懂提
- iOS面试题大全点亮技能树
- [解决办法]Python中使用json.loads解码字符串时出错:ValueError: Expecting property name: line 1 column 2 (char 1)
- 第一次发博客
- 简单理解混淆矩阵—Matlab详细代码注解
- 上机练习题——异常处理 课堂练习2: