您的位置:首页
扩展gcd求解二元不定方程及其证明
2017-05-13 14:26
260 查看
#include <cstdio> #include <iostream> using namespace std; /*扩展gcd证明 由于当d = gcd(a,b)时; d = d1 = gcd(b,a%b); d1 = b1x1 + a%by1; d = ax+by = b1x1+a%by1。又由于a%b = a - a%b*b; 上式变形能够有 b1x1 + (a-b*a/b)*y1 = a*y1 + b*(x1-a/b*y1); 也就是是说ax+by = a*y1 + b*(x1-a/b*y1); 所以当x=y1,y = x1-a/b*y1时。能够满足有d=ax+by; */ int fun(int a,int b,int d,int &x,int &y){ if(b == 0){ x = 1; y = 0; return a; } else{ d = fun(b,a%b,d,x,y); int t; t = x; x = y; y = t-a/b*y; return d; } } int main(){ int a,b,d; cin >>a >> b >> d; int x,y; fun(a,b,d,x,y); printf("%d %d\n",x,y); return 0; }
相关文章推荐
- 扩展gcd求解二元不定方程及其证明
- (数论)整数二元一次不定方程(扩展欧几里得求解)
- 【原创】欧几里得算法与拓展欧几里得算法的证明及其应用(不定方程、逆元)
- 浅谈扩欧及exgcd对二元不定方程求解问题
- 如何求解二元一次不定方程的整数解
- 扩展欧几里德解二元一次不定方程
- hdu2669 扩展欧几里德 二元一次解不定方程
- 欧几里德算法的扩展-求解不定方程
- POJ 2115 C Looooops 扩展gcd的应用 及其 gcd exgcd的讲解
- [OpenJudge-NOI]不定方程求解 扩展欧几里德
- 欧几里德算法的扩展-求解不定方程
- GCD及其扩展GCD详解
- POJ - 2142 The Balance(扩展欧几里得求解不定方程)
- GCD及其扩展GCD详解
- 欧几里得算法扩展(extended gcd)--解不定方程_初入门
- 欧几里德算法的扩展-求解不定方程
- GCD及其扩展GCD详解
- 《算法导论》学习笔记——裴蜀等式及其扩展的证明
- 扩展欧几里德算法、证明及其应用
- 关于欧几里得算法和拓展欧几里德定理的证明(不定方程求解方法)