中国剩余定理_解一次同余方程组
Posted 一只特立独行的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中国剩余定理_解一次同余方程组相关的知识,希望对你有一定的参考价值。
问题
孙子定理是中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国余数定理。一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:
有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。《孙子算经》中首次提到了同余方程组问题,以及以上具体问题的解法,因此在中文数学文献中也会将中国剩余定理称为孙子定理。
抽象来说,就是已知m和a求解一次同余方程
{
x
三
m
1
(
m
o
d
a
1
)
x
三
m
2
(
m
o
d
a
2
)
.
.
.
x
三
m
n
(
m
o
d
a
n
)
\\begin{cases} x三m_1(mod \\ a_1) \\\\ x三m_2(mod \\ a_2) \\\\ ...\\\\ x三m_n(mod \\ a_n) \\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧x三m1(mod a1)x三m2(mod a2)...x三mn(mod an)
思路
由于由n个同余方程,要求直接解上式较为复杂,所以先考虑只有两个同余方程的情况。
{
x
三
m
1
(
m
o
d
a
1
)
x
三
m
2
(
m
o
d
a
2
)
\\begin{cases} x三m_1(mod \\ a_1) \\\\ x三m_2(mod \\ a_2) \\\\ \\end{cases}
{x三m1(mod a1)x三m2(mod a2)
一般求解同余方程都要先将同余方程转换为一般方程的格式。上式可以转换为。
{
x
=
k
1
∗
a
1
+
m
1
x
=
k
2
∗
a
2
+
m
2
\\begin{cases} x=k_1*a_1+m_1 \\\\ x=k_2 *a_2+m_2 \\\\ \\end{cases}
{x=k1∗a1+m1x=k2∗a2+m2
可得
k
1
∗
a
1
+
m
1
=
k
2
∗
a
2
+
m
2
k_1*a_1+m_1=k_2 *a_2+m_2
k1∗a1+m1=k2∗a2+m2
对方程进行变换后得
k
1
∗
a
1
−
k
2
∗
a
2
=
m
2
−
m
1
k_1*a_1-k_2*a_2=m_2-m_1
k1∗a1−k2∗a2=m2−m1
其中,
m
2
,
m
1
,
a
1
,
a
2
m_2,m_1,a_1,a_2
m2,m1,a1,a2都是已知量,上式就符合
a
x
+
b
y
=
c
ax+by=c
ax+by=c的不定方程形式,可以通过扩展欧几里得算法求解。
扩展欧几里得算法解不定方程
对不定方程求解得
{
k
1
=
k
01
+
k
∗
a
2
d
k
2
=
k
02
+
k
∗
a
1
d
\\begin{cases} k_1=k_{01}+k* \\frac {a_2} d \\\\ k_2=k_{02}+ k*\\frac {a_1} d \\\\ \\end{cases}
{k1=k01+k∗da2k2=k02+k∗da1
其中
k
1
,
k
2
k_1,k_2
k1,k2表示满足上述方程的所有解,
k
0
,
1
,
k
02
k_{0,1},k_{02}
k0,1,k02表示满足方程的一组特解,k是任意非零整数,d是
a
1
,
a
2
a_1,a_2
a1,a2的最大公约数
将
k
1
k_1
k1回代到
x
=
k
1
∗
a
1
+
m
1
x=k_1*a_1+m_1
x=k1∗a1+m1,得
x
=
a
1
∗
k
01
+
k
∗
a
2
a
1
d
+
m
1
x=a_1*k_{01}+k* \\frac {a_2a_1} d+m_1
x=a1∗k01+k∗da2a1+m以上是关于中国剩余定理_解一次同余方程组的主要内容,如果未能解决你的问题,请参考以下文章