拓展欧几里得定理
Posted hanasaki
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拓展欧几里得定理相关的知识,希望对你有一定的参考价值。
void gcd(int a, int b, int &d, int &x, int &y) if(!b) d = a, x = 1, y = 0; else gcd(b, a%b, d, y, x), y -= x * (a / b);
假设 ax1+by1=gcd(a,b) (方程一) bx2+(a%b)y2=gcd(b,a%b)(方程二)
由欧几里得算法gcd(a,b)=gcd(b,a%b) 得到 ax1+by1=bx2+(a%b)y2
即ax1+by1=bx2+(a-a/b*b)y2 => ax1+by1=ay2+b(x2-a/b*y2)
最后可以得到 x1=y2; y1=x2-a/b*y2
以上是关于拓展欧几里得定理的主要内容,如果未能解决你的问题,请参考以下文章