中國剩餘定理,又稱孫子定理或中國餘數定理,是數論中的一個關於一元線性同餘方程組的定理,說明了一元線性同餘方程組有解的準則以及求解方法。該定理在中國古代也被稱為「韓信點兵」、「求一術」(宋 沈括)、「鬼谷算」(宋 周密)、「隔牆算」(宋 周密)、「剪管術」(宋 楊輝)、「秦王暗點兵」、「物不知數」等。
物不知數[編輯]
一元線性同餘方程組問題最早可見於中國南北朝時期(公元5世紀)的數學著作《孫子算經》卷下第二十六題,叫做「物不知數」問題,原文如下:
有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?
即,一個整數除以三餘二,除以五餘三,除以七餘二,求這個整數。《孫子算經》中首次提到了同餘方程組問題,以及以上具體問題的解法,因此在中文數學文獻中也會將中國剩餘定理稱為孫子定理。孫子沒正式證明,但後來印度數學家及天文學家阿耶波多給出具體過程,徹底解決了此定理的任何給定實例。[1]
最初對「物不知數」問題作出完整系統解答的是宋朝數學家秦九韶,載於1247年《數書九章》卷一、二《大衍類》中,從而使這一問題變為定理。明朝數學家程大位在《算法統宗》中將解法編成易於上口的《孫子歌訣》[2]:
三人同行七十稀,五樹梅花廿一支,七子團圓正半月,除百零五便得知
這個歌訣給出了模數為3、5、7時候的同餘方程式的秦九韶解法。意思是:將除以3得到的餘數乘以70,將除以5得到的餘數乘以21,將除以7得到的餘數乘以15,全部加起來後再減去105或者105的整數倍,得到的數就是答案(除以105得到的餘數則為最小答案)。比如說在以上的物不知數問題裡面,使用以上的方法計算就得到
![{\displaystyle 70\times 2+21\times 3+15\times 2=233=2\times 105+23.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c18f52fac3991d235b8632b7474eb7cdc52ebf65)
因此按歌訣求出的結果就是23。
《數書九章》最初由偉烈亞力在19世紀初譯為英文,而西方世界最早的完整系統解法由高斯在1801年提出。
形式描述[編輯]
用現代數學的語言來說明的話,中國剩餘定理給出了以下的一元線性同餘方程組:
![{\displaystyle (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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b3e3b83a47f7942fa7337d9157658625d6685ef0)
有解的判定條件,並用構造法給出了在有解情況下解的具體形式。
中國剩餘定理說明:假設整數m1, m2, ... , mn其中任兩數互質,則對任意的整數:a1, a2, ... , an,方程組
有解,並且通解可以用如下方式構造得到:
- 設
是整數m1, m2, ... , mn的乘積,並設
,即
是除了mi以外的n − 1個整數的乘積。
- 設
為
模
的數論倒數:![{\displaystyle t_{i}M_{i}\equiv 1{\pmod {m_{i}}},\;\;\forall i\in \{1,2,\cdots ,n\}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e764e813b4b993880932c6b080b56f3aa2b9ea59)
- 方程組
的通解形式為:
在模
的意義下,方程組
只有一個解:![{\displaystyle x=\sum _{i=1}^{n}a_{i}t_{i}M_{i}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/56e89d12fd609dc39d5c6919c2d9c47252dbf829)
從假設可知,對任何
,由於
,所以
這說明存在整數
使得
這樣的
叫做
模
的數論倒數。觀察乘積
可知:
![{\displaystyle a_{i}t_{i}M_{i}\equiv a_{i}\cdot 1=a_{i}{\pmod {m_{i}}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/addff4ebeba87f0283abda7b0c9734cdf5845aae)
![{\displaystyle \forall j\in \{1,2,\cdots ,n\},\;j\neq i,\;\;a_{j}t_{j}M_{j}\equiv 0{\pmod {m_{i}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c0b4f47a12c000dc3bd718c2d105b7fb41db5177)
所以
滿足:
![{\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}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6acaa215a4096594ca622b812b4e929dd49bee83)
這說明
就是方程組
的一個解。
另外,假設
和
都是方程組
的解,那麼:
![{\displaystyle \forall i\in \{1,2,\cdots ,n\},\;\;x_{1}-x_{2}\equiv 0{\pmod {m_{i}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0e42a82dd9d176edf7329b82efe8d879d63911c9)
而
兩兩互質,這說明
整除
. 所以方程組
的任何兩個解之間必然相差
的整數倍。而另一方面,
是一個解,同時所有形式為:
![{\displaystyle a_{1}t_{1}M_{1}+a_{2}t_{2}M_{2}+\cdots +a_{n}t_{n}M_{n}+kM=kM+\sum _{i=1}^{n}a_{i}t_{i}M_{i},\quad k\in \mathbb {Z} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/18077a911e9afaa99c19a18f3afccda893b8eccf)
的整數也是方程組
的解。所以方程組
所有的解的集合就是:
![{\displaystyle \{kM+\sum _{i=1}^{n}a_{i}t_{i}M_{i}\;;\quad k\in \mathbb {Z} \}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9e1397ec0a9071747addc8b4ffb5d4a5dd81595e)
使用中國剩餘定理來求解上面的「物不知數」問題,便可以理解《孫子歌訣》中的數字含義。這裡的線性同餘方程組是:
![{\displaystyle (S):\quad \left\{{\begin{matrix}x\equiv 2{\pmod {3}}\\x\equiv 3{\pmod {5}}\\x\equiv 2{\pmod {7}}\end{matrix}}\right.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/35f593c39f6fc97ccbdcd2e717aa8557c5547997)
三個模數 m1
3, m2
5, m3
7 的乘積是 M
105,對應的 M1
35, M2
21, M3
15. 而可以計算出相應的數論倒數:t1
2, t2
1, t3
1. 所以《孫子歌訣》中的 70、21 和 15 其實是這個「物不知數」問題的基礎解:
![{\displaystyle 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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a765622d8ec3444ee1014402b3631fc138fe0c71)
而將原方程組中的餘數相應地乘到這三個基礎解上,再加起來,其和就是原方程組的解:
![{\displaystyle 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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4c50ee73c8cd36fea779b37a6e890d4174edbd72)
這個和是 233,實際上原方程組的通解公式為:
![{\displaystyle x=233+k\times 105,\;k\in \mathbb {Z} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/9f25bf8bc758d25c9d72868de686df989cf70a87)
《孫子算經》中實際上給出了最小正整數解,也就是
時的解:
。
交換環上的推廣[編輯]
主理想整環[編輯]
設R是一個主理想整環,m1, m2, ... , mk是其中的k個元素,並且兩兩互質。令M
m1m2...mn為這些元素的乘積,那麼可以定義一個從商環R/MR映射到環乘積R/m1R × … × R/mkR的同態:
![{\displaystyle \left.\;\;x+M\mathrm {R} \;\mapsto \;(x+m_{1}\mathrm {R} ,x+m_{2}\mathrm {R} ,\cdots ,x+m_{k}\mathrm {R} )\right.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6a02ab402f501eff629a92e5288df9adb2052b08)
並且
是一個環同構。因此
的逆映射也存在。而這個逆映射的構造方式就如同中國剩餘定理構造一元線性同餘方程組的解一樣。由於mi和Mi
M/mi互質,所以存在si和ti使得
![{\displaystyle s_{i}m_{i}+t_{i}M_{i}=1_{\mathrm {R} }.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/680b592c512adf2a6e6987bef8cd45b19e46fc44)
而映射
![{\displaystyle \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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6d70d66c73a41a938bfe34718e8647205fb20f96)
就是
的逆映射。
也是一個主理想整環。將以上的R換成
,就能得到中國剩餘定理。因為
![{\displaystyle a_{i}+m_{i}\mathrm {R} =\{x;\;x\;\equiv \;a_{i}{\pmod {m_{i}}}\}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f40155325451862319a7d2ae96c11c46c1b11c83)
一般的交換環[編輯]
設R是一個有單位元素的交換環,I1, I2, ... , Ik是為環
的理想,並且當
時,
,則有典範的環同構:
![{\displaystyle x+I_{1}\cap \cdots \cap I_{n}\longmapsto (x+I_{1},x+I_{2},\cdots ,x+I_{k}).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4021fc571491fc2524ef2725604604efe30b5a38)
模不兩兩互質的同餘式組[編輯]
模不兩兩互質的同餘式組可化為模兩兩互質的同餘式組,再用孫子定理直接求解。
84=22×3×7,160=25×5,63=32×7,由推廣的孫子定理可得
與
同解。[3]
注意求解過程中應先檢查同餘式組上是否存在矛盾,存在矛盾的同餘式組無解。
參考資料[編輯]
- ^ 奇客Solidot | 古代战术计谋中的现代数学. www.solidot.org. [2021-11-03]. (原始內容存檔於2021-11-18).
- ^ 李儼《大衍求一術的過去和未來》《李儼.錢寶琮科學史全集》卷6 121頁《程大位的孫子歌》遼寧教育出版社. 1998
- ^ 劉古勝 徐東星 余暢. 推广的孙子定理. 高師理科學刊. 2010, (3) [2014-01-07]. (原始內容存檔於2020-03-27).
- 參考書目