同余方程

congruence_equation2026-08-24 19:46:25

对正整数 mm 和一元整系数多项式 f(x)=∑i=0naixif(x)=\sum_{i=0}^n a_ix^i,其中未知数 x∈Zmx\in\mathbf{Z}_m,称形如

f(x)≡0(modm)f(x)\equiv 0\pmod m

的方程为关于未知数 xx 的模 mm 的一元 同余方程(Congruence Equation).

若 an≢0(modm)a_n\not\equiv 0\pmod m,则称上式为 nn 次同余方程.

类似可定义 同余方程组.

线性同余方程

若 d=(a,m)d=(a,m),则线性同余方程

ax≡b(modm)ax\equiv b \pmod m

有解当且仅当 d∣bd\mid b.

若 d∣bd\mid b,且 x0x_0 为任意解,则通解为

x=x0+ntd,t∈Zx=x_0+\frac{nt}d,t\in\mathbf{Z}

特别地,这个解集正好生成了 dd 个模 mm 同余类,有

x=x0,x0+md,x0+2md,…,x0+(d−1)mdx=x_0,x_0+\frac md,x_0+\frac{2m}d,\ldots,x_0+\frac{(d-1)m}d

求解方法为求解 线性丢番图方程 ax+km=bax + km = b.

线性同余方程组求解参见 中国剩余定理.

高次同余方程

f(x)≡0(modm)f(x)\equiv 0 \pmod m

使用原根求解 xn≡a(modm)x^n\equiv a \pmod m

  1. 找到模 mm 的原根。
  2. 将方程转化为指数形式。
  3. 求解对应的离散对数问题。
  4. 使用同余方程求解方法得到最终解。

例如 x3≡2(mod11)x^3\equiv 2 \pmod {11}.

22 是 1111 的一个原根. 设 x=2k(mod11)x=2^k \pmod {11}.

23k≡2(mod11)2^{3k}\equiv 2 \pmod {11}

由费马小定理,210≡1(mod11)2^{10}\equiv 1 \pmod {11},所以

3k≡1(mod10)k≡7(mod10)3k\equiv 1 \pmod {10}\\ k\equiv 7 \pmod {10}

所以 x≡27(mod11)x\equiv2^7 \pmod {11}.

模数分解

假设我们有一个高次同余方程,如:

xn≡a(modm)x^n \equiv a \pmod{m}

其中 mm 可以因式分解为多个质因数,例如 m=p1e1⋅p2e2⋅⋯⋅pkekm = p_1^{e_1} \cdot p_2^{e_2} \cdot \dots \cdot p_k^{e_k},则可以将方程拆解为一组关于每个质因数的同余方程。

模数提升

由方程 f(x)≡0(modp)f(x)\equiv 0 \pmod p 的解进一步得到 f(x)≡0(modpk)f(x)\equiv 0 \pmod {p^k}.

详见 亨泽尔引理.

参考

https://oi-wiki.org/math/number-theory/congruence-equation/

本页目录