头像

欢迎来到我的博客

分享题解与总结

关于扩展欧几里得算法与合同式之间的关系

已知:

一次同余式:\(ax≡b(mod m)\)

(1) \(gcd(a,m)=1\)\(b\)任意,唯一解

(2) \(gcd(a,m)=d>1\)\(d\nmid b\),无解

(3) \(gcd(a,m)=d>1,d\mid b\),d个解,

\(α,α+m/d,α+2m/d,...α+(d-1)m/d\)

\(α\)\((a/d)x≡(b/d)(mod m/d)\)的唯一解

上述公式只是手算方便,但是写代码比较麻烦,下面推导该公式与exgcd(a,m,x,y)的关系


\(exgcd(a,m,x,y) \Leftrightarrow ax + my = gcd(a,m)\)

\(d = gcd(a,m)\)

\(xa + ym = d \Leftrightarrow ax ≡ d (mod m)\)

——exgcd(a,m,x,y)获得了d,x,y

——其中的x,是\(ax ≡ d (mod m)\)的解

——不是\(ax ≡ b (mod m)\)的解

——下面通过放缩,得到a,m,b合同式的解


如果\(d \nmid b\),无解

否则\(d \mid b\),同乘\(b/d\)

\(ax(b/d) ≡ d(b/d) (mod m) \Leftrightarrow a(x(b/d)) ≡ b(mod m)\)

——\(x(b/d)\)是整数,也正是\(ax ≡ b (mod m)\)的解

——\(x(b/d)\)归约到\(mod(m/d)\),即为\(α\)

——\(a= x(b/d) mod(m/d)\)


而这个\(α\)也是\((a/d)x ≡ b/d (mod (m/d))\)的解!

\(m \mid (aα-b) \Rightarrow m/d \mid (a/dα-b/d)\)


综上,exgcd(a,m,x,y)得到\(ax ≡ d (mod m)\)的解x,方程放缩得到\(ax ≡ b (mod m)\)的特解为x(b/d),这个特解就是mod(m/d)意义下\((a/d)x ≡ b/d (mod (m/d))\)的解\(α\)

posted @ 2026-06-27 10:50  king_steph1209  阅读(3)  评论(0)    收藏  举报