中国剩余定理(Chinese Remainder Theorem, CRT)
定理描述
设有一组整数方程:
{ x ≡ a 1 ( mod m 1 ) x ≡ a 2 ( mod m 2 ) ⋮ x ≡ a n ( mod m n ) \begin{cases} x \equiv a_1 \ (\text{mod}\ m_1) \\ x \equiv a_2 \ (\text{mod}\ m_2) \\ \vdots \\ x \equiv a_n \ (\text{mod}\ m_n) \end{cases} ⎩ ⎨ ⎧x≡a1 (mod m1)x≡a2 (mod m2)⋮x≡an (mod mn)
其中, m 1 , m 2 , … , m n m_1, m_2, \ldots, m_n m1,m2,…,mn 是两两互质的正整数(即任意两个 m i m_i mi 和 m j m_j mj 互质), a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,…,an 是任意整数。
中国剩余定理指出,这组方程有解,并且在模 M = m 1 × m 2 × ⋯ × m n M = m_1 \times m_2 \times \cdots \times m_n M=m1×m2×⋯×mn 的意义下,解是唯一的。
解的构造方法
1. 计算 M M M
M = m 1 × m 2 × ⋯ × m n M = m_1 \times m_2 \times \cdots \times m_n M=m1×m2×⋯×mn
2. 计算每个 M i M_i Mi
M i = M m i M_i = \frac{M}{m_i} Mi=miM
3. 求 M i M_i Mi 关于 m i m_i mi 的逆元 t i t_i ti
即找到一个整数 t i t_i ti,使得:
t i × M i ≡ 1 ( mod m i ) t_i \times M_i \equiv 1 \ (\text{mod}\ m_i) ti×Mi≡1 (mod mi)
可以通过扩展欧几里得算法求得。
4. 构造解 x x x
x = ∑ i = 1 n a i × t i × M i x = \sum_{i=1}^{n} a_i \times t_i \times M_i x=i=1∑nai×ti×Mi
然后,取 x x x 模 M M M 的结果:
x ≡ ( ∑ i = 1 n a i × t i × M i ) ( mod M ) x \equiv \left( \sum_{i=1}^{n} a_i \times t_i \times M_i \right) \ (\text{mod}\ M) x≡(i=1∑nai×ti×Mi) (mod M)
这个 x x x 即为满足原同余方程组的解。
示例
考虑以下同余方程组:
{ x ≡ 2 ( mod 3 ) x ≡ 3 ( mod 5 ) x ≡ 2 ( mod 7 ) \begin{cases} x \equiv 2 \ (\text{mod}\ 3) \\ x \equiv 3 \ (\text{mod}\ 5) \\ x \equiv 2 \ (\text{mod}\ 7) \end{cases} ⎩ ⎨ ⎧x≡2 (mod 3)x≡3 (mod 5)x≡2 (mod 7)
解法
- 计算 M M M:
M = 3 × 5 × 7 = 105 M = 3 \times 5 \times 7 = 105 M=3×5×7=105
- 计算每个 M i M_i Mi:
M 1 = 105 3 = 35 M 2 = 105 5 = 21 M 3 = 105 7 = 15 \begin{aligned} M_1 &= \frac{105}{3} = 35 \\ M_2 &= \frac{105}{5} = 21 \\ M_3 &= \frac{105}{7} = 15 \end{aligned} M1M2M3=3105=35=5105=21=7105=15
- 求每个 M i M_i Mi 关于对应 m i m_i mi 的逆元 t i t_i ti:
-
求 t 1 t_1 t1:需要找到 t 1 t_1 t1,使得:
35 × t 1 ≡ 1 ( mod 3 ) 35 \times t_1 \equiv 1 \ (\text{mod}\ 3) 35×t1≡1 (mod 3)
因为 35 ≡ 2 ( mod 3 ) 35 \equiv 2 \ (\text{mod}\ 3) 35≡2 (mod 3),所以:
2 × t 1 ≡ 1 ( mod 3 ) 2 \times t_1 \equiv 1 \ (\text{mod}\ 3) 2×t1≡1 (mod 3)
通过尝试,得到 t 1 = 2 t_1 = 2 t1=2,因为:
2 × 2 = 4 ≡ 1 ( mod 3 ) 2 \times 2 = 4 \equiv 1 \ (\text{mod}\ 3) 2×2=4≡1 (mod 3)
-
求 t 2 t_2 t2:需要找到 t 2 t_2 t2,使得:
21 × t 2 ≡ 1 ( mod 5 ) 21 \times t_2 \equiv 1 \ (\text{mod}\ 5) 21×t2≡1 (mod 5)
因为 21 ≡ 1 ( mod 5 ) 21 \equiv 1 \ (\text{mod}\ 5) 21≡1 (mod 5),所以 t 2 = 1 t_2 = 1 t2=1。
-
求 t 3 t_3 t3:需要找到 t 3 t_3 t3,使得:
15 × t 3 ≡ 1 ( mod 7 ) 15 \times t_3 \equiv 1 \ (\text{mod}\ 7) 15×t3≡1 (mod 7)
因为 15 ≡ 1 ( mod 7 ) 15 \equiv 1 \ (\text{mod}\ 7) 15≡1 (mod 7),所以 t 3 = 1 t_3 = 1 t3=1。
- 构造解 x x x:
x = ( 2 × 2 × 35 ) + ( 3 × 1 × 21 ) + ( 2 × 1 × 15 ) = 140 + 63 + 30 = 233 \begin{aligned} x &= (2 \times 2 \times 35) + (3 \times 1 \times 21) + (2 \times 1 \times 15) \\ &= 140 + 63 + 30 \\ &= 233 \end{aligned} x=(2×2×35)+(3×1×21)+(2×1×15)=140+63+30=233
- 求模结果:
x ≡ 233 ( mod 105 ) = 23 x \equiv 233 \ (\text{mod}\ 105) = 23 x≡233 (mod 105)=23
因此,方程组的解为 x = 23 x = 23 x=23。
总结
中国剩余定理在求解一组特定同余方程时非常高效,特别是在密码学、计算机科学等领域有广泛应用。其解的唯一性和构造方法,使得该定理成为数论中的重要工具。