当前位置:文档之家› 中国剩余定理

中国剩余定理

中国古代求解一次同余式组(见同余)的方法。

是数论中一个重要定理。

又称中国剩余定理。

注释:三数为a b c,余数分别为m1 m2 m3,%为求今年余计算,&&是“且”运算。

孙子定理
孙子定理
1、分别找出能被两个数整除,而满足被第三个整除余一的最小的数。

k1%b==k1%c==0 && k1%a==1;
k2%a==k2%c==0 && k2%b==1;
k3%a==k3%b==0 && k3%c==1;
2、将三个未知数乘对应数字的余数再加起来,减去这三个数的最小公倍数的整数倍即得结果。

Answer = k1×m1 + k2×m2 + k3×m3 - P×(a×b×c);
P为满足Answer > 0的最大整数;
或者Answer = (k1×m1 + k2×m2 + k3×m3)%(a×b×c) ;
解题思路:
令某数为M,令素数为A,B,C,D,…,Z,已知M/A余a,M/B余b,M/C余c,M/D余d,…,M/Z余z。

求M=?
因为A,B,C,D,…,Z为不同的素数,故,B*C*D*…*Z不可能被A整除,有等差数列(B*C*D*…*Z)+(B*C*D*…*Z)N中取A个连续项,这A个连续项分别除以A的余数必然存在0,1,2,
3,…,A-1,所以,从这A个连续项中能寻找到除以A余1的数。

再用除以A余1的这个数*a其积必然除以A余a,这个除以A余a 的数,为能够被素数B*C*D*…*Z整除的数,为第一个数;
再按同样的道理,从A*C*D*…*Z的倍数中寻找除以B余b的数,该数具备被素数A,C,D,…,Z整除的特性,为第二个数;
因为,第一个数除以A余a,第二个数能被素数A,C,D,…,Z整除,即能被A整除,所以,第一个数+第二个数之和,仍然保持除以A余a;
同理,第二个数除以B余b,因第一个数能被B整除,所以,第二个数+第一个数之和,仍然保持除以B余b。

即,第一个数+第二个数之和,为满足除以A余a,除以B余b。

依此类推,按上面的方法寻找到除以各素因子的余数的数之总和,为满足除以各素因子余数的条件的数。

总和再减去能被这几个素数共同整除的数(A*B*C*D*…*Z)N后,其差仍然保持除以各素因子余数的条件的数。

由此构成孙子定理的解法。

(中国剩余定理CRT)设m1,m2,...,mk是两两互素的正整数,即gcd(mi,mj) =1,i≠j,i,j = 1,2,...,k
则同余方程组:
x≡b1 (mod m1)
x≡b2 (mod m2)
...
x≡bk (mod mk)
模[m1,m2,...,mk]有唯一解,即在[m1,m2,...,mk]的意义下,存在唯一的x,满足:
x≡bi mod [m1,m2,...,mk],i = 1,2,...,k
《孙子算经》中的标题:有些东西不知道数字,三是二,五是三,七是二。

东西的总数是多少?
《孙子经》的解法:三个或三个数字,取数字七十,然后乘以其余两个;5到5个数字,将数字21乘以余数3;取七个或七个数字,取十五,然后乘以其余两个。

将乘积相加并减去一百零五。

相关主题