10线性同余方程

线性同余方程

定义

形如:

\[ax\equiv b\pmod p \]

的方程为线性同余方程。其中,a,b和n为给定整数,x为未知数。需要从区间\([0,n-1]\)中求解x,当解不唯一时需要求出全体解。

用逆元求解

\(gcd(a,n)= 1\)时,$ x\equiv ba^{-1}\pmod p$

\(gcd(a,n)\neq 1\)时,设\(g = gcd(a,b)\)

(1)当b不能被g整除时,无解。

(2)当g整除b时,将方程的a,b,n同时除以g,得到:\(a^{'}x\equiv b^{'} \pmod{n^{'}}\)

​ 此时解不唯一。

\[x_i\equiv (x^{'} + i\cdot n^{'}) \pmod n \quad \text{for } i = 0 \ldots g-1 \]

总之,线性同余方程的 解的数量 等于$ g = \gcd(a, n) $或等于 0。

用扩展欧几里得算法求解

根据以下两个定理,可以求出线性同余方程$ ax\equiv b \pmod n $的解。

定理 1:线性同余方程 $ax\equiv b \pmod n $可以改写为如下线性不定方程:

\[ax + nk = b \]

其中 x 和 k 是未知数。这两个方程是等价的,有整数解的充要条件为 \(\gcd(a,n) \mid b\)

应用扩展欧几里德算法可以求解该线性不定方程。根据定理 1,对于线性不定方程$ ax+nk=b$,可以先用扩展欧几里得算法求出一组 \(x_0,k_0\),也就是 \(ax_0+nk_0=\gcd(a,n)\),然后两边同时除以$ \gcd(a,n)$,再乘 b。就得到了方程

\[a\dfrac{b}{\gcd(a,n)}x_0+n\dfrac{b}{\gcd(a,n)}k_0=b \]

于是找到方程的一个解。

定理 2:若$ \gcd(a,n)=1$,且 $x_0、k_0 $为方程 $ax+nk=b $的一组解,则该方程的任意解可表示为:

\[x=x_0+nt k=k_0-at \]

并且对任意整数 t 都成立。

根据定理 2,可以从已求出的一个解,求出方程的所有解。实际问题中,往往要求出一个最小整数解,也就是一个特解

\[x=(x \bmod t+t) \bmod t \]

其中有

\[t=\dfrac{n}{\gcd(a,n)} \]

如果仔细考虑,用扩展欧几里得算法求解与用逆元求解,两种方法是等价的。

posted @ 2025-07-18 19:47  星空丶star  阅读(35)  评论(0)    收藏  举报