中国剩余定理,又称孙子定理或中国余数定理,是数论中的一个关于一元线性同余方程组的定理,说明了一元线性同余方程组有解的准则以及求解方法。该定理在中国古代也被称为“韩信点兵”、“求一术”(宋 沈括)、“鬼谷算”(宋 周密)、“隔墻算”(宋 周密)、“剪管术”(宋 杨辉)、“秦王暗点兵”、“物不知数”等。
一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:
有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。《孙子算经》中首次提到了同余方程组问题,以及以上具体问题的解法,因此在中文数学文献中也会将中国剩余定理称为孙子定理。孙子没正式证明,但后来印度数学家及天文学家阿耶波多给出具体过程,彻底解决了此定理的任何给定实例。[1]
最初对“物不知数”问题作出完整系统解答的是宋朝数学家秦九韶,载于1247年《数书九章》卷一、二《大衍类》中,从而使这一问题变为定理。明朝数学家程大位在《算法统宗》中将解法编成易于上口的《孙子歌诀》[2]:
三人同行七十稀,五树梅花廿一支,七子团圆正半月,除百零五便得知
这个歌诀给出了模数为3、5、7时候的同余方程的秦九韶解法。意思是:将除以3得到的余数乘以70,将除以5得到的余数乘以21,将除以7得到的余数乘以15,全部加起来后再减去105或者105的整数倍,得到的数就是答案(除以105得到的余数则为最小答案)。比如说在以上的物不知数问题里面,使用以上的方法计算就得到

因此按歌诀求出的结果就是23。
《数书九章》最初由伟烈亚力在19世纪初译为英文,而西方世界最早的完整系统解法由高斯在1801年提出。
用现代数学的语言来说明的话,中国剩余定理给出了以下的一元线性同余方程组:

有解的判定条件,并用构造法给出了在有解情况下解的具体形式。
中国剩余定理说明:假设整数m1, m2, ... , mn其中任两数互质,则对任意的整数:a1, a2, ... , an,方程组
有解,并且通解可以用如下方式构造得到:
- 设
是整数m1, m2, ... , mn的乘积,并设
,即
是除了
以外的
个整数的乘积。
- 设
为
模
的数论倒数:
- 方程组
的通解形式为:
在模
的意义下,方程组
只有一个解:
从假设可知,对任何
,由于
,所以
这说明存在整数
使得
这样的
叫做
模
的数论倒数。观察乘积
可知:


所以
满足:

这说明
就是方程组
的一个解。
另外,假设
和
都是方程组
的解,那么:

而
两两互质,这说明
整除
. 所以方程组
的任何两个解之间必然相差
的整数倍。而另一方面,
是一个解,同时所有形式为:

的整数也是方程组
的解。所以方程组
所有的解的集合就是:

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

三个模数 m1
3, m2
5, m3
7 的乘积是 M
105,对应的 M1
35, M2
21, M3
15. 而可以计算出相应的数论倒数:t1
2, t2
1, t3
1. 所以《孙子歌诀》中的 70、21 和 15 其实是这个“物不知数”问题的基础解:

而将原方程组中的余数相应地乘到这三个基础解上,再加起来,其和就是原方程组的解:

这个和是 233,实际上原方程组的通解公式为:

《孙子算经》中实际上给出了最小正整数解,也就是
时的解:
。
设R是一个主理想整环,m1, m2, ... , mk是其中的k个元素,并且两两互质。令M
m1m2...mn为这些元素的乘积,那么可以定义一个从商环R/MR映射到环乘积R/m1R × … × R/mkR的同态:

并且
是一个环同构。因此
的逆映射也存在。而这个逆映射的构造方式就如同中国剩余定理构造一元线性同余方程组的解一样。由于mi和Mi
M/mi互质,所以存在si和ti使得

而映射

就是
的逆映射。
也是一个主理想整环。将以上的R换成
,就能得到中国剩余定理。因为

设R是一个有单位元的交换环,I1, I2, ... , Ik是为环
的理想,并且当
时,
,则有典范的环同构:

模不两两互质的同余式组可化为模两两互质的同余式组,再用孙子定理直接求解。
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).
- 参考书目