**中國剩餘定理**，又稱**孫子定理**或**中國餘數定理**，是数论中的一個关于一元线性同余方程组的定理，说明了一元线性同余方程组有解的准则以及求解方法。该定理在中国古代也被称为「韓信點兵」、「求一术」（宋 沈括）、「鬼谷算」（宋 周密）、「隔算」（宋 周密）、「剪管術」（宋 杨辉）、「秦王暗點兵」、「物不知數」等。

物不知数
----

一元线性同余方程组问题最早可见于中國南北朝时期（公元5世纪）的数学著作《孫子算經》卷下第二十六题，叫做"物不知數"问题，原文如下：

> 有物不知其数，三三数之剩二，五五数之剩三，七七数之剩二。问物几何？
> 
> 

即，一個整數除以三二，除以五三，除以七二，求這個整數。《孫子算經》中首次提到了同余方程组问题，以及以上具体问题的解法，因此在中文数学文献中也会将中国剩余定理称为孙子定理。孫子沒正式證明，但後來印度數學家及天文學家阿耶波多給出具體過程，徹底解決了此定理的任何給定實例。

最初对"物不知数"问题作出完整系统解答的是宋朝数学家秦九韶，载于1247年《数书九章》卷一、二《大衍类》中，从而使这一问题变为定理。明朝数学家程大位在《算法统宗》中将解法编成易于上口的《孙子歌诀》：

> 三人同行七十稀，五樹梅花廿一支，七子團圓正半月，除百零五便得知
> 
> 

这个歌诀给出了模数为3、5、7时候的同余方程的秦九韶解法。意思是：将除以3得到的余数乘以70，将除以5得到的余数乘以21，将除以7得到的余数乘以15，全部加起来後再减去105或者105的整数倍，得到的数就是答案（除以105得到的余数则为最小答案）。比如说在以上的物不知数问题里面，使用以上的方法计算就得到

70 \times 2 + 21 \times 3 + 15 \times 2 = 233 = 2\times 105 +23.
因此按歌诀求出的结果就是23。

《数书九章》最初由伟烈亚力在19世纪初译为英文，而西方世界最早的完整系统解法由高斯在1801年提出。

形式描述
----

用现代数学的语言来说明的话，中国剩余定理给出了以下的一元线性同余方程组：

(S) : \quad \left\{ \begin{matrix} x \equiv a\_1 \pmod {m\_1} \\ x \equiv a\_2 \pmod {m\_2} \\ \vdots \qquad\qquad\qquad \\ x \equiv a\_n \pmod {m\_n} \end{matrix} \right.
有解的判定条件，并用构造法给出了在有解情况下解的具体形式。

中国剩余定理说明：假设整数*m*1, *m*2, ... , *m*n其中任两數互质，则对任意的整数：*a*1, *a*2, ... , *a*n，方程组(S)有解，并且通解可以用如下方式构造得到：

1. 设M = m\_1 \times m\_2 \times \cdots \times m\_n = \prod\_{i=1}^n m\_i是整数*m*1, *m*2, ... , *m*n的乘积，并设M\_i = M/m\_i, \; \; \forall i \in \{1, 2, \cdots , n\}，即M\_{i}是除了*m*i以外的*n* − 1个整数的乘积。
2. 设t\_i = M\_i^{-1}为M\_{i}模m\_{i}的数论倒数：t\_i M\_i \equiv 1 \pmod {m\_i}, \; \; \forall i \in \{1, 2, \cdots , n\}.
3. 方程组(S)的通解形式为：x = a\_1 t\_1 M\_1 + a\_2 t\_2 M\_2 + \cdots + a\_n t\_n M\_n + k M= k M + \sum\_{i=1}^n a\_i t\_i M\_i, \quad k \in \mathbb{Z}. 在模M的意义下，方程组(S)只有一个解：x = \sum\_{i=1}^n a\_i t\_i M\_i.

### 证明

从假设可知，对任何i \in \{1, 2, \cdots , n\}，由于\forall j \in \{1, 2, \cdots , n\}, \; j\neq i, \; \; \operatorname{gcd}(m\_i, m\_j) = 1 ，所以\operatorname{gcd}(m\_i, M\_i) = 1. 这说明存在整数t\_{i}使得t\_i M\_i \equiv 1 \pmod {m\_i}. 这样的t\_{i}叫做M\_{i}模m\_{i}的数论倒数。觀察乘积a\_i t\_i M\_i可知：

{\displaystyle a\_{i}t\_{i}M\_{i}\equiv a\_{i}\cdot 1=a\_{i}{\pmod {m\_{i}}},}
{\displaystyle \forall j\in \{1,2,\cdots ,n\},\;j\neq i,\;\;a\_{j}t\_{j}M\_{j}\equiv 0{\pmod {m\_{i}}}.}
所以x = a\_1 t\_1 M\_1 + a\_2 t\_2 M\_2 + \cdots + a\_n t\_n M\_n满足：

{\displaystyle \forall i\in \{1,2,\cdots ,n\},\;\;x=a\_{i}t\_{i}M\_{i}+\sum \_{j\neq i}a\_{j}t\_{j}M\_{j}\equiv a\_{i}+\sum \_{j\neq i}0=a\_{i}{\pmod {m\_{i}}}.}
这说明x就是方程组(S)的一个解。

另外，假设x\_1和x\_2都是方程组(S)的解，那么：

\forall i \in \{1, 2, \cdots , n\}, \; \; x\_1 - x\_2 \equiv 0 \pmod {m\_i} .
而m\_1, m\_2, \ldots, m\_n两两互质，这说明M =\prod\_{i=1}^n m\_i整除x\_1 - x\_2. 所以方程组(S)的任何两个解之间必然相差M的整数倍。而另一方面，x = a\_1 t\_1 M\_1 + a\_2 t\_2 M\_2 + \cdots + a\_n t\_n M\_n是一个解，同时所有形式为：

a\_1 t\_1 M\_1 + a\_2 t\_2 M\_2 + \cdots + a\_n t\_n M\_n + k M= k M + \sum\_{i=1}^n a\_i t\_i M\_i, \quad k \in \mathbb{Z}
的整数也是方程组(S)的解。所以方程组(S)所有的解的集合就是：

\{k M + \sum\_{i=1}^n a\_i t\_i M\_i \; ; \quad k \in \mathbb{Z} \}.

例子
--

使用中国剩余定理来求解上面的"物不知数"问题，便可以理解《孙子歌诀》中的数字含义。这里的线性同余方程组是：

(S) : \quad \left\{ \begin{matrix} x \equiv 2 \pmod {3} \\ x \equiv 3 \pmod {5} \\ x \equiv 2 \pmod {7} \end{matrix} \right.
三个模数 *m*1=3, *m*2=5, *m*3=7 的乘积是 *M*=105，对应的 *M*1=35, *M*2=21, *M*3=15. 而可以计算出相应的数论倒数：*t*1=2, *t*2=1, *t*3=1. 所以《孙子歌诀》中的 70、21 和 15 其实是这个"物不知数"问题的基础解：

70 = 2 \times 35 \equiv \left\{ \begin{matrix} 1 \pmod {3} \\ 0 \pmod {5} \\ 0 \pmod {7} \end{matrix} , \right. 21 = 1 \times 21 \equiv \left\{ \begin{matrix} 0 \pmod {3} \\ 1 \pmod {5} \\ 0 \pmod {7} \end{matrix} , \right. 15 = 1 \times 15 \equiv \left\{ \begin{matrix} 0 \pmod {3} \\ 0 \pmod {5} \\ 1 \pmod {7} \end{matrix} , \right.
而将原方程组中的余数相应地乘到这三个基础解上，再加起来，其和就是原方程组的解：

2\times 70 + 3 \times 21 + 2 \times 15 \equiv \left\{ \begin{matrix} 2 \times 1 + 3 \times 0 + 2 \times 0 \equiv 2 \pmod {3} \\ 2 \times 0 + 3 \times 1 + 2 \times 0 \equiv 3 \pmod {5} \\ 2 \times 0 + 3 \times 0 + 2 \times 1 \equiv 2 \pmod {7} \end{matrix} , \right. 
这个和是 233，实际上原方程组的通解公式为：

{\displaystyle x=233+k\times 105,\;k\in \mathbb {Z} }
《孙子算经》中实际上给出了最小正整数解，也就是 {\displaystyle k=-2} 时的解：{\displaystyle x=23}。

交换环上的推广
-------

### 主理想整环

设R是一个主理想整环，m1, m2, ... , mk是其中的k个元素，并且两两互质。令M=m1m2...mn为这些元素的乘积，那么可以定义一个从商环R/*M*R映射到环乘积R/*m*1R × … × R/*m*kR的同态：

\phi : \; \; \mathrm{R} \big / M\mathrm{R} \longrightarrow \mathrm{R} \big / m\_1 \mathrm{R} \times \mathrm{R} \big / m\_2 \mathrm{R} \times \cdots \times \mathrm{R} \big / m\_k \mathrm{R}
\left. \; \; x + M\mathrm{R}\; \mapsto \; (x+ m\_1 \mathrm{R}, x + m\_2 \mathrm{R},\cdots , x+ m\_k \mathrm{R} ) \right.
并且\phi 是一个环同构。因此\phi 的逆映射也存在。而这个逆映射的构造方式就如同中国剩余定理构造一元线性同余方程组的解一样。由于mi和Mi=M/mi互质，所以存在*s*i和*t*i使得

s\_i m\_i + t\_i M\_i = 1\_{\mathrm{R}}.
而映射

\varphi : \; \; \mathrm{R} \big / m\_1 \mathrm{R} \times \mathrm{R} \big / m\_2 \mathrm{R} \times \cdots \times \mathrm{R} \big / m\_k \mathrm{R} \longrightarrow \mathrm{R} \big / M\mathrm{R} 
\left. \; (a\_1 + m\_1 \mathrm{R}, a\_2 + m\_2 \mathrm{R},\cdots , a\_k + m\_k \mathrm{R} )\; \mapsto \; \sum\_{i=1}^k a\_i t\_i M\_i + M \mathrm{R} \right.
就是\phi 的逆映射。

\mathbb {Z} 也是一个主理想整环。将以上的R换成\mathbb {Z} ，就能得到中国剩余定理。因为

a\_i + m\_i \mathrm{R} = \{x ; \; x \; \equiv \; a\_i \pmod{m\_i} \}
### 一般的交换环

设R是一个有单位元的交换环，*I*1, *I*2, ... , *I*k是为环\mathbf{R}的理想，并且当i \ne j时，I\_i + I\_j = \mathbf{R}，则有典范的环同构：

\psi : \; \; \mathbf{R} /( I\_1 \cap \cdots \cap I\_k) \longrightarrow \mathbf{R} / I\_1 \times \cdots \times \mathbf{R}/ I\_k
x + I\_1 \cap \cdots \cap I\_n \longmapsto (x + I\_1 , x + I\_2 ,\cdots, x + I\_k).

模不两两互质的同余式组
-----------

模不两两互质的同余式组可化为模两两互质的同余式组，再用孙子定理直接求解。

84=22×3×7,160=25×5,63=32×7，由推广的孙子定理可得
\begin{cases}
x \equiv 23 \pmod{84} \\
x \equiv 7 \pmod{160} \\
x \equiv 2 \pmod{63} 
\end{cases}
与
\begin{cases}
x \equiv 7 \pmod{2^5} \\
x \equiv 2 \pmod{3^2} \\
x \equiv 7 \pmod{5} \\
x \equiv 23 \pmod{7}
\end{cases}
同解。

解法
\begin{cases}
x \equiv 7 \pmod{2^5} \\
x \equiv 2 \pmod{3^2} \\
x \equiv 7 \pmod{5} \\
x \equiv 23 \pmod{7}
\end{cases}
\rightarrow 
{\displaystyle {\begin{cases}x\equiv 7{\pmod {2^{5}}}\\x\equiv 2{\pmod {3^{2}}}\\x\equiv 2{\pmod {5}}\\x\equiv 2{\pmod {7}}\end{cases}}}
\rightarrow 
{\displaystyle {\begin{cases}x\equiv 7{\pmod {2^{5}}}\\x\equiv 2{\pmod {3^{2}\times 5\times 7}}\\\end{cases}}}

{\displaystyle 2^{5}=32}以及{\displaystyle 3^{2}\times 5\times 7=315}

{\displaystyle 315a\equiv 1{\pmod {32}}\rightarrow (315-32\times 10)a\equiv 1{\pmod {32}}\rightarrow -5a\equiv 1{\pmod {32}}}，取數論倒數{\displaystyle a=-13}

{\displaystyle 32b\equiv 1{\pmod {315}}\rightarrow 32b\equiv 1+315\times 13{\pmod {315}}\rightarrow 32b\equiv 4096{\pmod {315}}}，因{\displaystyle \gcd(32,315)=1} ，故兩邊可同除以32， 取數論倒數{\displaystyle b={\frac {4096}{32}}=128}

{\displaystyle 315\times (-13)\times 7+32\times 128\times 2=-20473}

{\displaystyle -20473\equiv 9767{\pmod {32\times 315}}}

所以最小正整數解為{\displaystyle 9767}，通解為{\displaystyle x=9767+10080k,k\in \mathbb {Z} }。

  

注意求解过程中应先检查同余式组上是否存在矛盾，存在矛盾的同余式组无解。

{\displaystyle {\begin{cases}x\equiv 3{\pmod {6}}\\x\equiv 4{\pmod {10}}\\\end{cases}}\Rightarrow {\begin{cases}{\color {Red}x\equiv 1{\pmod {2}}}\\x\equiv 0{\pmod {3}}\\{\color {Red}x\equiv 0{\pmod {2}}}\\x\equiv 4{\pmod {5}}\\\end{cases}}}

参见
--

* 哈瑟原则

参考资料
----

1. ↑ . www.solidot.org.  [2021-11-03]. （原始内容存档于2021-11-18）.
2. ↑  李俨《大衍求一术的过去和未来》《李俨.钱宝琮科学史全集》卷6 121页《程大位的孙子歌》辽宁教育出版社. 1998
3. ↑  刘古胜 徐东星 余畅.. 高师理科学刊. 2010, (3)  [2014-01-07]. （原始内容存档于2020-03-27）.

参考书目
* *数学的100个基本问题*，靳平 主编，ISBN 7-5377-2171-8

|  |  |  |
| --- | --- | --- |
| 

|  |  |
| --- | --- |
| 规范控制 編輯維基數據鏈接 | 
* GND: 4470755-1
* J9U: 987007558793905171
* LCCN: sh97002778

 |

 |