正在连接内容文件

附录11 - 中国剩余定理

『中国剩余定理(Chinese Remainder Theorem,简称 CRT)』 是数论中最基础、也最优美的定理之一。
「附录10」中在欧拉函数积性证明中用到的那个“完美的一一对应(双射)”,其实就是中国剩余定理在两个模数下的直接应用!

它不仅在纯数学中有核心地位,在现代密码学(比如 RSA 加密算法)和计算机科学中也是不可或缺的基石。

一、 历史起源:“韩信点兵”与“物不知数”

这套理论最早出现在中国古代数学著作《孙子算经》(大约公元 4 到 5 世纪)中,原文有一道非常著名的谜题:

“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”

翻译成现代语言就是:有一个未知的整数 xx,除以 3 余 2,除以 5 余 3,除以 7 余 2。求 xx 是多少?

古人为了解决这类问题,总结出了一套被称为“大衍求一术”的算法,这正是中国剩余定理的雏形。后来,西方数学家高斯在其著作《算术研究》中给出了严格的代数表述。

二、 现代代数表述(严谨定义)

中国剩余定理解决的是一元线性同余方程组的求解问题。

假设有 kk 个正整数 m1,m2,…,mkm_1, m_2, \dots, m_k,它们两两互素(即任意两个数的最大公约数都是 1,gcd⁡(mi,mj)=1\gcd(m_i, m_j) = 1)。
给定任意 kk 个整数 a1,a2,…,aka_1, a_2, \dots, a_k。

中国剩余定理断言:以下同余方程组必定存在解,并且在模 M=m1m2…mkM = m_1 m_2 \dots m_k 的意义下,解是唯一的:

x≡a1(modm1)x \equiv a_1 \pmod{m_1}

x≡a2(modm2)x \equiv a_2 \pmod{m_2}

⋮\vdots

x≡ak(modmk)x \equiv a_k \pmod{m_k}

这意味着,在 11 到 MM 的范围内,有且仅有一个 xx 能够同时满足上述所有的余数条件。

三、 构造性证明(如何求出 xx?)

中国剩余定理不仅告诉你“解存在”,还直接给出了像拼积木一样构造出这个解的算法。

第一步:计算总乘积
令 M=m1m2…mkM = m_1 m_2 \dots m_k。

第二步:计算基础“积木”
对于每一个 ii(从 11 到 kk),定义 Mi=MmiM_i = \frac{M}{m_i}。
(也就是说,MiM_i 是除了 mim_i 以外,其他所有模数的乘积)。
显然,MiM_i 能够被其他所有模数整除,所以 Mi≡0(modmj)M_i \equiv 0 \pmod{m_j}(当 j≠ij \neq i 时)。

第三步:求逆元(裴蜀定理的登场)
因为 m1,…,mkm_1, \dots, m_k 两两互素,所以 MiM_i 和 mim_i 也是互素的。
根据裴蜀定理,必定存在一个整数 tit_i,使得:

Miti≡1(modmi)M_i t_i \equiv 1 \pmod{m_i}

这个 tit_i 被称为 MiM_i 在模 mim_i 下的乘法逆元。

第四步:组合出最终答案
我们将所有的部件组合起来,最终的解 xx 的通式为:

x=∑i=1kaiMitix = \sum_{i=1}^k a_i M_i t_i

为什么这个式子是对的?
我们随便挑一个模数 m1m_1 来检验:

  • 当 i=1i = 1 时,那一项是 a1M1t1a_1 M_1 t_1。因为 M1t1≡1(modm1)M_1 t_1 \equiv 1 \pmod{m_1},所以这一项模 m1m_1 的结果就是 a1⋅1=a1a_1 \cdot 1 = a_1。
  • 当 i≠1i \neq 1(比如 i=2,3…i = 2, 3 \dots)时,那一项是 aiMitia_i M_i t_i。因为 MiM_i 里面包含了因子 m1m_1,所以 Mi≡0(modm1)M_i \equiv 0 \pmod{m_1},这一整项模 m1m_1 的结果就是 0。
  • 所有的项加起来模 m1m_1,结果恰好就是 a1+0+0⋯=a1a_1 + 0 + 0 \dots = a_1。

这完美满足了方程组的要求!

第五步:证明唯一性
第四步中我们证明了任何一组 a1,a2,⋯ ,aka_1, a_2, \cdots, a_k 组合都能找到一个 x∈{1,⋯ ,M}x \in \{1, \cdots, M\}
这样的 ai{a_i} 的组合一共有 MM 个,而 xx 可取的范围也只有 MM 个数,根据抽屉原理,不可能有两个不同 xi,xjx_i, x_j 对应同一组ai{a_i},这就证明了解的唯一性。

四、 应用于欧拉函数积性证明

回顾「附录10」中证明欧拉函数积性的方法二中用的构造方法:

寻找整数 u,vu, v,使得
mu+nv=1mu + nv = 1
x=(a⋅nv+b⋅mu) mod mnx = (a \cdot nv + b \cdot mu) \bmod mn

这里,我们要求 x≡a(modm)x \equiv a \pmod m 且 x≡b(modn)x \equiv b \pmod n。
对应到上面的构造法:
m1=m,m2=nm_1 = m, m_2 = n,
M1=n,M2=mM_1 = n, M_2 = m,
nn 在模 mm 下的逆元是 vv,mm 在模 nn 下的逆元是 uu(这正是裴蜀定理 mu+nv=1mu + nv = 1 的直接推论)。
所以我们构造出的
x=a⋅n⋅v+b⋅m⋅ux = a \cdot n \cdot v + b \cdot m \cdot u
这完全就是中国剩余定理在 k=2k=2 时的标准构造公式!