对正整数 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
- 找到模 mm 的原根。
- 将方程转化为指数形式。
- 求解对应的离散对数问题。
- 使用同余方程求解方法得到最终解。
例如 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}.
详见 亨泽尔引理.