数论-扩展欧几里得算法
来源:互联网 发布:python 分词 编辑:程序博客网 时间:2024/05/16 03:13
扩展欧几里得算法
已知(a, b)求解(p, q), 使得p * a + q * b = GCD(a, b);
一定有解;
因为GCD(a, b) = GCD(b, a%b)
所以p * a + q * b = GCD(a, b)
= GCD(b, a%b)
= p * b + q * a % b
= p * b + q * (a - a/b * b)
= p * b + q * a - q * a/b * b
= q * a + (p - a/b * q) * b
就把a与b的线性组合转换为b,a%b的线性组合
不断缩小,当b=0时,p=1,q=1
递归求解
【code】ax+by=gcd(a,b) 求解x,y
#include <iostream>using namespace std;//Extended_GCDint Extended_GCD(int a, int b, int &p, int &q) {if(b == 0) {p = 1;q = 0;return a;}int gcd = Extended_GCD(b, a%b, p, q), tmp;tmp = p;p = q;q = tmp - a/b * q;return gcd;}int main() {int gcd, a, b, x, y;cin >> a >> b;gcd = Extended_GCD(a, b, x, y);cout << gcd << ' ' << x << ' ' << y << endl;return 0;}
阅读全文
0 0
- 【数论】扩展欧几里得算法
- 数论-扩展欧几里得算法
- 数论-扩展欧几里得算法
- 欧几里得算法&&扩展欧几里得算法<数论>
- 【模板】【数论】扩展欧几里得算法
- poj 1061 数论 扩展欧几里得算法
- [数论]HDU 2669 Romantic 扩展欧几里得算法
- 『数论』扩展欧几里得算法
- 数论——扩展欧几里得算法
- 扩展欧几里得【数论
- 数论 + 扩展欧几里得
- 【数论】扩展欧几里得
- [数论]POJ 2115/HOJ 1787 C Looooops 扩展欧几里得算法
- [数论]HOJ 2185 Min Chain 扩展欧几里得算法
- [数论]HDU 1576 A/B 扩展欧几里得算法
- [数论]POJ 1061 青蛙的约会 扩展欧几里得算法
- NEFU 630 数论扩展欧几里得算法的应用
- poj 1061青蛙的约会 (数论:扩展的欧几里得算法)
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 8.6 Random 类
- 微信开发之调用扫一扫接口
- 数据结构-单链表_c++
- Idea--Tomcate配置中的On Upate Action 与 On Frame Deactivation
- 数论-扩展欧几里得算法
- 判定系数推导 — Coefficient of Determination Derivation
- 海康、华为、中兴、联影...找工作记录
- Java循环结构
- OpenCV--提取水平与垂直线(形态学操作应用)
- mysql账户管理
- 堆和优先队列
- 【TensorFlow】MNIST(使用CNN)
- 【软考】区分网桥,路由器的区别