$$ \gdef\kongru#1#2#3{ #1 \equiv #2\ (\text{mod}\ #3) } \gdef\vecshow#1#2{#1_1, \ldots #1_k \in \Bbb{#2} } $$

我们已经学习了如何求解模运算中的同余方程。在此节,我们可以学习到如何使用中国剩余定理(Chinese Remainder Theorem,亦译为孙子定理)求解不同模下的同余系统。在满足任意的 \(k \in \Z\) 及与其互素的自然数 \(\vecshow{n}{N}\),和整数 \(\vecshow{a}{Z}\) 条件下,所谓 联立同余(simultaneous congruences)1 问题(见下式)会有解,并且此时同余体系所有可能的解都是同余体系中的模的乘积 \(N = n_1 \cdot \ldots \cdot n_k\):

\[ \begin{array}{c} \kongru{x}{a_1}{n_1} \\ \kongru{x}{a_2}{n_2} \\ \cdots \\ \kongru{x}{a_k}{n_k} \\ \end{array} \]

求解方法如下:

Chinese Remainder Theorem

示例 10

为了解释如何使用中国剩余定理求解联立同余问题,我们展示一个同余系统:

\[ \begin{array}{c} \kongru{x}{4}{7} \\ \kongru{x}{1}{3} \\ \kongru{x}{3}{5} \\ \kongru{x}{0}{11} \\ \end{array} \]

显然,所有的模都是互素的(因为它们都是素数)。现在我们进行如下计算:

\[ \begin{array}{l} N = 7 \cdot 3 \cdot 5 \cdot 11 = 1155\\ N_1 = 1155/7 = 165\\ N_2 = 1155/3 = 385\\ N_3 = 1155/5 = 231\\ N_4 = 1155/11 = 105\\ \end{array} \]

在上述计算的基础上,我们使用扩展欧几里得算法:

\[ \begin{array}{cccc} 1 = & 2 \cdot 165 & + & -47 \cdot 7 \\ 1 = & 1 \cdot 385 & + & -128 \cdot 3 \\ 1 = & 1 \cdot 231 & + & -46 \cdot 5 \\ 1 = & 2 \cdot 105 & + & -19 \cdot 11 \\ \end{array} \]

结果,我们得到了 \(x = 4 \cdot 2 \cdot 165 + 1 \cdot 1 \cdot 385 + 3 \cdot 1 \cdot 231 + 0 \cdot 2 \cdot 105 = 2398\) 是联立同余问题的一个解。因为 \(2398\ mod\ 1155 = 88\),所以所有解构成的集合为 \(\{\ldots, -2222, -1067,88,1243, 2398, \ldots\} \)

我们也可以使用Sage的中国剩余定理(CRT)函数对上述求解进行检查:

sage: CRT_list([4, 1, 3, 0], [7, 3, 5, 11])
88
1

暂未找到simultaneous congruences的准确翻译,暂时按照直译含义翻译