在公元 4 世纪中国数学家孙子在《孙子数经》中提出了以下问题:一个数字被 3 除余 2,被 5 除余 5,被 7 除余 2,这个数字是什么?孙子并没有给出解决这种问题的方法,所以我们将要学习的方法是由印度数学家阿耶波多在公元 6 世纪提出的。
余数问题的正式形式描述如下:
给予一元性同余方程组 S,其中为 m1,m2,m3,…,mn 大于 1 的整数, a1,a2,a3,…,an 为任意整数。
求方程组 S 的有解条件,并在有解的情况下求解。
1. 算法介绍
中国余数定理表示,如果 m1,m2,…,mi,…,mn 为互质的整数则 S 有解,否则无解。互质意味着 m1,m2,…,mi,…,mn 除 1 没有其他的公约数。比如(3,5,7)互质,(6,4,7)不互质,因为 6 与 4 的公约数是 2。
在有解的情况下,中国余数定理给出了解的形态表达公式。中国余数定理算法过程如下:
令 M=m1,m2,…,mi,…,mn ;
令 Mi=M/mi;
寻找 c1,c2,…,ci,…,cn ,使 ciMi=1(mod mi);
方程组的解为:
让我们通过解决示例来更好地理解上述算法,我们要找到所有满足条件的 x。
① M 为除数的乘积。
M=3×5×7=105
② Mi 为除了 mi 所有其他除数的乘积
M1=5