中国剩余定理

来源:互联网 发布:ubuntu des 解密 编辑:程序博客网 时间:2024/05/18 15:26

问题描述:

有如下同余方程组:

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

原创粉丝点击