孙子剩余定理 乘率求法“今有物,不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”即被三除余二,被五除余三
3个回答

写成数论记号:同余号≡以下简记为==

注:

N 除以m余r,记作N == r mod m.

N与L除以m余数相同,称作同余,记作N==L mod m.

x==2 mod 3

==3 mod 5

==2 mod 7

这在数论中称为同余方程组,简称同余式组.

中国剩余定理(孙子定理)就是求解同余式组的手段之一(注意,并不是唯一方法).它的思想是这样的:

以下为方便说明,采用我引进的向量记法(近来我发现网上也有作者有类似记法),可写成:

x==(2,3,2) mod (3,5,7)

x1==(1,0,0);即x1==1 mod 3,x1==(0,0)mod(5,7),亦即x1被5,7整除.

x2==(0,1,0);

x3==(0,0,1)

那么可取

x==2x1+3x2+2x3

在求解x1时,由于x1被(5*7)整除,从而可设x1=5*7*k1;

又x1==1 mod 3,即5*7*k1==1 mod 3.

很显然可以取k1=2.这便是提问者问到的"为什么得到70要乘以2",其实取-1也行嘛.

对于此题,其实有更简当的解法,见我的另一处答题:

这里的k1,当然是很容易求的;但对于复杂的情况,如

对于如何用各式方法计算,我将会抽出时间,专文介绍.

上面的k1,南宋数学家秦九韶首次称之为乘率,并对k1的求法进行了系统的科学的分析,称为大衍求一术.

相关网页详见:

文章详见:

其实除了大衍求一术,

辗转相除法以及其相关的矩阵算法

还有洪伯阳先生在中介绍的算法:

还有张春荣、张景刚先生的剩余倍分法,武如长先生的阶法,可以解决这类问题.

下面是我的另一则相关答题,请参考: