作为一个直接由中国命名的定理,中国剩余定理是中国古代数学在数论领域的最重要成果,也是数学主要分支的基础定理里少有被世界公认为属于中国的。值得说明的是,中国古代的数学家不仅给出了判定存在的中国剩余定理,还构建了用于求解对应方程的大衍求一术,这两项完整的构成了一次同余方程组的解的存在性理论和解的计算算法,可以说是完美解决了一次同余方程这个问题。这是中国古代数学的璀璨明珠。
知乎上对中国剩余定理介绍还挺多的,不过我还没看到过哪篇文章有完整的讲明白大衍求一术,甚至有些就误认为大衍求一术就是中国剩余定理本身。这篇文章就为大家介绍中国古代同余方程的完整理论。
鉴于知乎上类似内容非常多,我就不讲《九章算术》等的原文了,全文直接用现代数学语言叙述。
定理1(中国剩余定理) 对同余方程若
两两互质, 则对任意
方程
有解, 且解在
的意义下唯一.
我们先给出一个非构造性证明,然后在本文后面将给出构造解.
证明:
存在性:记
显然
又
唯一性:若
这个存在性证明,即“在两个等大有限集合间构造单射,从而得到双射”,是数论多个基本定理的共通性证明。
接下来,我们将给出
引理(大衍求一术的存在性定理版本)当时, 方程
有整数解. 且解在
意义下是唯一的
这个定理也可以使用类似定理1的方式进行存在性证明. 我们先不去证明它, 之后我们将用大衍求一术给出这个方程的构造性解.
要指出的是, 引理所给出的解正是初等数论中极其重要的“数论倒数”, 也就是
定理2 同余方程有显式解
, 其中
为方程
的解(由引理,这个解是存在的).
证明:直接验证即有
下面我们将进入本文的核心,也就是同余方程
我们注意到, 求解
更相减损术/欧几里得算法 设有两数, 在
之间不断作带余除法并取余数, 即
, 则算法将在有限步内因整除得到余数
而终止, 且终止前的最后一个非零余数就是
的最大公约数.
这个算法的证明可以使用递降法: 首先迭代过程保证了最大公约数不会变化, 且只要不出现
由于带余除法
具体的, 设
因此,只要我们对
定理3(大衍求一术) 方程依照如上算法可以给出算法解.
以上便是秦九韶给出的大衍求一术用现代语言叙述的结果。其原文如下
大衍求一术云︰置奇右上,定居右下,立天元一于左上。先以右上除右下,所得商数与左上一相生,入左下。然后乃以右行上下,以少除多,递互除之,所得商数随即递互累乘,归左行上下。须使右上末后奇一而止,乃验左上所得,以为乘率。(《数书九章·大衍类》南宋·秦九韶)
我们用一个实例
秦九韶称
然后对右边做带余除法, 第一次有
再做带余除法,
以下,有
最终右上角出现了
中国古代数学体系中尚未出现负数,方阵的左下角其实是
同时中国古代数学也没有真正的
在中国古代数学的正数体系中这个算法只能处理
综上, 我们叙述完了中国古代数学的同余方程理论. 这个理论难能可贵的是它完美符合现代数学对“方程问题的解理论”的期望:存在性理论(只要互质必然存在)、解的性质(在模