首页 > 代码库 > 扩展欧几里得
扩展欧几里得
方程ax + by = c是否有解,当且仅当c是gcd(a,b)的倍数时,方程有解(根据数论中的贝祖定理)。设t = c / gcd(a,b), 我们可以用扩展欧几里得求出方程ax + by = gcd(a,b)的一组解(x1,y1)那么方程ax + by = c的一组解是(tx1,ty1) 设为(X,Y)那么方程的其它解是(X+kaa,y-kbb) , aa = a / gcd(a,b), bb = b / gcd(a,b), k 为任意整数。为什么呢? 设方程的另一组解为X1,Y1.aX + bY = aX1 + bY1 ---> a(X-X1) = b(Y1-Y) 方程两边同除gcd(a,b)---> aa(X-X1) = bb(Y1-Y)这时aa和bb互素(除1之外没有公约数),所以aa是(Y1-Y)的倍数,bb是(X-X1)的倍数(这一步怎么来的,我也不是很清楚)设Y1 - Y = kaa, X - X1 = kbb,所以X = X1 + kbb, Y = Y1 - kaa
扩展欧几里得
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。