文章目录
中国剩余定理(CRT),又称孙子定理,最早见于公元5-6世纪,我国南北朝的一部经典数学著作《孙子算经》中的“物不知数”问题:
“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”
这其实是求解一个一次同余方程组,即
{
x
≡
2
m
o
d
3
x
≡
3
m
o
d
5
x
≡
2
m
o
d
7
\begin{cases} x\equiv2\ mod\ 3 \\ x\equiv3\ mod\ 5 \\ x\equiv2\ mod\ 7 \end{cases}
⎩⎪⎨⎪⎧x≡2 mod 3x≡3 mod 5x≡2 mod 7
令
x
=
A
+
B
+
C
x=A+B+C
x=A+B+C,若
A
A
A,
B
B
B,
C
C
C满足以下条件,则为解。这里
[
a
]
m
[a]_m
[a]m表示模
m
m
m与
a
a
a同余。
A
=
[
2
]
3
,
B
=
[
0
]
3
,
C
=
[
0
]
3
A
=
[
0
]
5
,
B
=
[
3
]
5
,
C
=
[
0
]
5
A
=
[
0
]
7
,
B
=
[
0
]
7
,
C
=
[
2
]
2
\begin{matrix} A=[2]_3,\ B=[0]_3,\ C=[0]_3 \\ A=[0]_5,\ B=[3]_5,\ C=[0]_5 \\ A=[0]_7,\ B=[0]_7,\ C=[2]_2 \end{matrix}
A=[2]3, B=[0]3, C=[0]3A=[0]5, B=[3]5, C=[0]5A=[0]7, B=[0]7, C=[2]2
看最左边一列,
A
A
A为
5
×
7
5\times7
5×7的倍数,且模
3
3
3余
2
2
2,这样
A
A
A就比较容易求解了。
A
A
A可以用以下方法计算。
A
=
(
5
×
7
)
(
5
×
7
)
−
1
×
2
A=(5\times7)(5\times7)^{-1}\times2
A=(5×7)(5×7)−1×2。因为这个表达式中有
(
5
×
7
)
(5\times7)
(5×7),因此是
5
5
5和
7
7
7的倍数。同时这个表达式模
3
3
3余
2
2
2。原因是:
(
5
×
7
)
=
35
(5\times7)=35
(5×7)=35,
(
5
×
7
)
−
1
(5\times7)^{-1}
(5×7)−1表示
(
5
×
7
)
(5\times7)
(5×7)模
3
3
3的逆元,
35
35
35模
3
3
3的逆元是
2
2
2,两者相乘必然模
3
3
3余
1
1
1。因此,再乘以
2
2
2后必然模
3
3
3余
2
2
2。即
A
=
35
×
2
×
2
=
140
A=35\times2\times2=140
A=35×2×2=140模
3
3
3余
2
2
2,且为
5
5
5和
7
7
7的倍数。
同理,
B
B
B为
3
×
7
3\times7
3×7的倍数,且模
5
5
5余
3
3
3,于是,可以用以下方法计算:
B
=
(
3
×
7
)
(
3
×
7
)
−
1
×
3
B=(3\times7)(3\times7)^{-1}\times3
B=(3×7)(3×7)−1×3,这里
(
3
×
7
)
−
1
(3\times7)^{-1}
(3×7)−1表示
(
3
×
7
)
(3\times7)
(3×7)模
5
5
5的逆元。
3
×
7
=
21
3\times7=21
3×7=21,
21
21
21模
5
5
5的逆元是
1
1
1。因此,
B
=
21
×
1
×
3
=
63
B=21\times1\times3=63
B=21×1×3=63。
同理,
C
C
C为
3
×
5
3\times5
3×5的倍数,且模
7
7
7余
2
2
2,于是,可以用以下方法计算:
C
=
(
3
×
5
)
(
3
×
5
)
−
1
×
2
C=(3\times5)(3\times5)^{-1}\times2
C=(3×5)(3×5)−1×2,这里
(
3
×
5
)
−
1
(3\times5)^{-1}
(3×5)−1表示
(
3
×
5
)
(3\times5)
(3×5)模
7
7
7的逆元。
3
×
5
=
15
3\times5=15
3×5=15,
15
15
15模
7
7
7的逆元是
1
1
1。因此,
C
=
15
×
1
×
2
=
30
C=15\times1\times2=30
C=15×1×2=30。
于是
x
=
A
+
B
+
C
=
140
+
63
+
30
=
233
x=A+B+C=140+63+30=233
x=A+B+C=140+63+30=233,又
233
m
o
d
105
=
23
233\ mod\ 105=23
233 mod 105=23。因此,所有解为
105
K
+
23
105K+23
105K+23。
一般地,如果
m
1
m_1
m1,
m
2
m_2
m2,
m
3
m_3
m3是两两互素的正整数,对于同余方程组
{
x
≡
a
1
m
o
d
m
1
x
≡
a
2
m
o
d
m
2
x
≡
a
3
m
o
d
m
3
\begin{cases} x\equiv a_1\ mod\ m_1 \\ x\equiv a_2\ mod\ m_2 \\ x\equiv a_3\ mod\ m_3 \end{cases}
⎩⎪⎨⎪⎧x≡a1 mod m1x≡a2 mod m2x≡a3 mod m3
令
m
=
∏
i
=
1
3
m
i
m=\prod_{i=1}^3m_i
m=∏i=13mi,
M
i
=
m
/
m
i
M_i=m/m_i
Mi=m/mi,则解为
x
=
∑
i
=
1
3
M
i
M
i
−
1
a
i
(
m
o
d
m
)
x=\sum_{i=1}^3M_iM_i^{-1}a_i\ (mod\ m)
x=i=1∑3MiMi−1ai (mod m)
定理3.3(中国剩余定理)
设
m
1
m_1
m1,
m
2
m_2
m2,
…
\dots
…,
m
k
m_k
mk是
k
k
k个两两互素的正整数,令
m
=
∏
i
=
1
k
m
i
m=\prod_{i=1}^km_i
m=∏i=1kmi,
M
i
=
m
/
m
i
(
i
=
1
,
2
,
…
,
k
)
M_i=m/m_i\ (i=1,2,\dots,k)
Mi=m/mi (i=1,2,…,k),则对任意的整数
a
1
a_1
a1,
a
2
a_2
a2,
…
\dots
…,
a
k
a_k
ak,同余式组
{
x
≡
a
1
m
o
d
m
1
x
≡
a
2
m
o
d
m
2
⋮
x
≡
a
k
m
o
d
m
k
\begin{cases} x\equiv a_1\ mod\ m_1 \\ x\equiv a_2\ mod\ m_2 \\ \vdots \\ x\equiv a_k\ mod\ m_k \end{cases}
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x≡a1 mod m1x≡a2 mod m2⋮x≡ak mod mk
有唯一解,即
x
≡
∑
i
=
1
k
M
i
M
i
−
1
a
i
(
m
o
d
m
)
x\equiv\sum_{i=1}^kM_iM_i^{-1}a_i\ (mod\ m)
x≡i=1∑kMiMi−1ai (mod m)
其中:
M
i
M
i
−
1
≡
1
(
m
o
d
m
i
)
M_iM_i^{-1}\equiv1\ (mod\ m_i)
MiMi−1≡1 (mod mi)
证明:
由于
(
m
i
,
m
j
)
=
1
,
i
≠
j
(m_i,m_j)=1,i≠j
(mi,mj)=1,i=j,即得
(
M
i
,
m
i
)
=
1
(M_i,m_i)=1
(Mi,mi)=1,由定义2.3和定理2.8知,对每一个
M
i
M_i
Mi,有一个
M
i
−
1
M_i^{-1}
Mi−1存在,使得
M
i
M
i
−
1
≡
1
(
m
o
d
m
i
)
M_iM_i^{-1}\equiv1(mod\ m_i)
MiMi−1≡1(mod mi)。另外,由于
m
=
m
i
M
i
m=m_iM_i
m=miMi,因此
m
j
∣
M
i
,
i
≠
j
m_j|Mi,\ i≠j
mj∣Mi, i=j,故
∑
i
=
1
k
M
i
M
i
−
1
a
i
≡
M
i
M
i
−
1
a
i
≡
a
i
(
m
o
d
m
i
)
i
=
1
,
2
,
…
,
k
\sum_{i=1}^kM_iMi^{-1}a_i\equiv M_iM_i^{-1}a_i\equiv a_i\ (mod\ m_i)\quad i=1,2,\dots,k
i=1∑kMiMi−1ai≡MiMi−1ai≡ai (mod mi)i=1,2,…,k
若
x
1
x_1
x1,
x
2
x_2
x2是满足同余式组的任意两个解,则
x
1
≡
x
2
(
m
o
d
m
i
)
(
i
=
1
,
2
,
…
,
k
)
x_1\equiv x_2(mod\ m_i)(i=1,2,\dots,k)
x1≡x2(mod mi)(i=1,2,…,k),因为
(
m
i
,
m
j
)
=
1
,
i
≠
j
(m_i,m_j)=1,i≠j
(mi,mj)=1,i=j,于是
x
1
≡
x
2
(
m
o
d
m
)
x_1\equiv x_2(mod\ m)
x1≡x2(mod m),所以同余式组的解唯一。
总结
本文主要介绍了中国剩余定理及其证明方法。