求解gcd(a,b)=ax+by (扩展欧几里得算法)
来源:互联网 发布:abb机器人用什么编程 编辑:程序博客网 时间:2024/05/19 02:20
欧几里德算法
用来求两个数的最大公约数的算法。具体如下
int gcd(int a,int b){
if(b == 0) return a;
return gcd(b,a%b);
}
扩展欧几里德算法(求解gcd(a,b)=ax+by )
分析:
ax1+by1=gcd(a,b)
=gcd(b,a%b)=bx2+a%by2
=bx2+(a-(a/b)*b)y2
=bx2+ay2-(a/b)*by2
=b(x2-(a/b)*y2)+ay2
待定系数:x1=y2
y1=x2-(a/b)*y2
说明:a/b是取整除法
代码:
int ext_gcd(inta,int b,int& x,int&y){
int t,ret;
if (!b){
x=1,y=0;
return a;
}
ret=ext_gcd(b,a%b,x,y);
t=x,x=y,y=t-a/b*y;
return ret;
}
- 求解gcd(a,b)=ax+by (扩展欧几里得算法)
- 求gcd(a,b) = ax + by中的gcd(a, b)、a、b(扩展欧几里得算法尾递归版)
- 扩展欧几里得求方程 ax+by=gcd(a,b) 的解
- 拓展欧几里得解方程ax+by=gcd(a,b)
- 邝斌的ACM模板(扩展欧几里得算法(求 ax+by=gcd 的解以及逆元素))
- UVALive6428 A+B【扩展欧几里得算法+GCD】
- A/B(扩展欧几里得算法)
- 欧几里得算法(gcd)和扩展欧几里得
- 扩展欧几里得算法,解模线性方程,解ax+by=c的解集
- 【数论】扩展欧几里得 Ax+By=m 最小的X
- 扩展欧几里得求Ax+By=1的解
- Ray Tracing(扩展欧几里得,ax+by=c最小解)
- poj 1576 A/B(扩展欧几里得算法)
- HDU 1576 A/B(扩展欧几里得算法)
- hdu-1576-A/B【扩展欧几里得算法】
- Uvalive 6428 A+B(扩展欧几里得算法)
- hdu 1576 A/B 扩展欧几里得算法
- HDU 1576-A/B(扩展欧几里得算法)
- Supporting hyperplane
- PHP面向对象技术
- SGU101
- map的应用
- 黑马程序员_学习笔记8用类加载器的方式管理资源和配置文件及类加载器的总结
- 求解gcd(a,b)=ax+by (扩展欧几里得算法)
- ANDROID内核真机移植
- Tiny6410 下的usb移植
- 面向对象的一些理解
- Java WEB开发--国际化
- vc消息映射机制----------------
- 动态表格读取课程表
- 好吧,我这样决定了
- hdu1004