【数论】扩展欧几里得
2017-07-25 17:13
260 查看
欧几里得算法用于求解最大公因数
主要原理:
扩展欧几里得算法用于求解二元一次方程
首先了解一下裴蜀定理:ax+by=c有解当且仅当gcd(a,b)|c
那么我们就可以求解ax+by=gcd(a,b)
根据这个原理递归求解即可
根据这个求得的x,y只是一组可行解
如果gcd(a,b)=1,那么如果得到一组解x0,y0,通解就可以表示为x=x0+b×t,y=y0−a×t
如果需要求最小整数解x,我们可以令t= b (a , b),那么x=(x0%t+t)%t即可
主要原理:
int gcd(int a,int b){return b?gcd(b,a%b):a;}
扩展欧几里得算法用于求解二元一次方程
首先了解一下裴蜀定理:ax+by=c有解当且仅当gcd(a,b)|c
那么我们就可以求解ax+by=gcd(a,b)
根据这个原理递归求解即可
int exgcd(int a,int b,int &x,int &y) { if(b==0) { x=1; y=0; return a; } int GCD=exgcd(b,a%b,x,y); int temp=x; x=y; y=temp-a/b*y; return GCD; }
根据这个求得的x,y只是一组可行解
如果gcd(a,b)=1,那么如果得到一组解x0,y0,通解就可以表示为x=x0+b×t,y=y0−a×t
如果需要求最小整数解x,我们可以令t= b (a , b),那么x=(x0%t+t)%t即可
相关文章推荐
- [数论]HOJ 2185 Min Chain 扩展欧几里得算法
- poj 1061 小白算法练习 数论 扩展欧几里得 青蛙的约会
- 【数论】扩展欧几里得 Ax+By=m 最小的X
- [hdu 4828]Grids 数论(扩展欧几里得求逆元)
- 数论 + 扩展欧几里得 - SGU 106. The equation
- 【数论】【快速幂】【扩展欧几里得】【BSGS算法】bzoj2242 [SDOI2011]计算器
- 扩展欧几里得【数论
- (Relax 数论1.6)POJ 1061 青蛙的约会(扩展的欧几里得公式)
- 数论读书笔记——欧几里得和扩展欧几里得
- [ZLXOI2015]殉国 数论 扩展欧几里得
- hiho 1297 数论四·扩展欧几里得
- 数论--欧几里得和扩展的欧几里得定理
- poj1061 青蛙的约会 (数论,扩展欧几里得)
- 数论(欧几里得,扩展欧几里得,欧拉)
- POJ 青蛙的约会 1061【经典数论-扩展欧几里得】
- 【数论】【扩展欧几里得】hdu3579 Hello Kiki
- 数论继续学习4--扩展欧几里得
- 数论学习(2)——欧几里得与扩展欧几里得
- 菜鸡的初入数论(1)——欧几里得与扩展欧几里得小结