问题描述:
有如下同余方程组:
x≡a[1](mod m[1])
x≡a[2](mod m[2])
x≡a[3](mod m[3])
x≡a[4](mod m[4])
…
x≡a[n](mod m[n])
根据同余方程组求出x的值。(其中m[1],m[2],m[3],m[4]…m[n]两两互素)
问题分析:
中国剩余定理就是专门用来解同余方程组的,但是必须要满足前提条件所有的模都是两两互素的。
首先计算M=m[1]m[2]*m[3]*m[4]……*m[n]
令M[i] = M/m[i],可得gcd(M[i], m[i])=1, 可以得到同余方程M[i]T[i]≡1(mod m[i]),
因此可以容易看出:X=a[1]M[1]T[1]+a[2]M[2]T[2]+a[3]M[3]T[3]+a[4]M[4]T[4]+…+a[n]M[n]T[n]是方程组的一个解。
如果要求最小正整数解,则为:X=(X+M)%M