先搬定义:
若m1,m2,.......mn是两两互质的正整数,M=m1*m2*.......*mn,Mi=M/mi,ti是线性同余方程组Mi*ti≡1(mod mi)的一个解。对于任意n个整数a1,a2,.......an,则同余方程组:
x≡a1(mod m1);
x≡a2(mod m2);
........
x≡an(mod mn)
有整数解,方程的解为x=a1*M1*t1+a2*M2*t2+......+an*Mn*tn。并且当对M取模时取得最小且唯一的解。
下面是粗略的证明:
因为Mi=M/mi,M=m1*m2.....*mn,且每个m互质,所以Mi与mi互质。
所以:ai*Mi*ti mod mk =0(k!=i);
因为ti是由方程: Mi*ti≡1(mod mi)求出的,
所以有: ai*Mi*ti≡ai(mod mi) ;
把x=a1*M1*t1+......+an*Mn*tn代入任意一个原方程 x≡ai(mod mi),做x mod mi;
x中,只有一项mod mi !=0,那就是ai*Mi*ti,且结果为ai。
所以x满足所有的原方程。
其它:
求出了一个x后,方程的通解为: x+k*M,k∈Z。若题目需要最小非负整数解,只需对M取模且∈[0,M-1]即可。