算法

线性同余方程

2020-08-04  本文已影响0人  dachengquan

给定整数a,b,m,求一个整数x满足a*x \equiv b(\mod m),或者给出无解。
对于这个公式可以用其他形式表示,m\mid (a*x - b)a*x-b是m的倍数,假设这个倍数是-y倍。那么有公式a*x+m*y=b,对这个公式使用扩展欧几里德算法。求解一个x,y的特解,然后使用通解公式将x,y变为我们期望的范围。使用扩展欧几里得算法求出d = exgcd(a,m,x,y),如果d\mid b说明有解。x*b/d就是我们的特解,通解k*m/d+x*b/d

上一篇 下一篇

猜你喜欢

热点阅读