Skip to content

Commit b82bded

Browse files
author
taotao
committed
添加线性同余方程组不互素的情况
1 parent 6eba6ef commit b82bded

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Diff for: math/模方程.md

+28
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,31 @@ $$
8282
唯一性
8383

8484
假设有两个解$x_1,x_0$,则这两个解一定满足对于任意一个$j,x_0\equiv x_1\equiv a_j (MOD \ m_j),因此,m_j \mid (x_1-x_0),由于m_0,m_1,...,m_{n-1}两两互素,因此,M\mid (x_1-x_0)$
85+
#模数不同余的时候
86+
那么当$m_i$不两两互素的时候怎么办呢?我们先来看一个简单的例子.即解这样的方程的最小正剩余.
87+
$$
88+
\begin{align}
89+
x&\equiv r_1(MOD\ \ m_1)\\
90+
x&\equiv r_2(MOD\ \ m_2)\\
91+
&\vdots\\
92+
x&\equiv r_n(MOD\ \ m_n)\\
93+
\end{align}
94+
$$
95+
我们先来看一个简单的只有两个式子的情况.
96+
$$
97+
\begin{align}
98+
x&\equiv r_1(MOD \ \ m_1)\\
99+
x&\equiv r_2(MOD\ \ m_2)\\
100+
\end{align}
101+
$$
102+
我们有$x = k_1m_1+r_1 = k_2m_2+r_2$,即$k_1m_1-k_2m_2 = r_2-r_1$,由丢番图方程的结论这个方程有解当且仅当$gcd(m_1,m_2)\mid (r_2-r_1)$,下面我们来证明,它的解在$模[m_1,m_2](最小公倍数)的意义下是唯一的.$
103+
104+
* **证:**
105+
106+
设$x_0 = k_1m_1+r_1$是原方程的一组解,则由上面的丢番图方程的结论我们知道另一个解一定是
107+
108+
$x_1=(k_1+m_2/d*n)m_1+r_1 = k_1m_1+r_1+m_1m_2/d*n$,所以说$x_1\equiv x_0(MOD\ \ [m_1,m_2])$
109+
110+
当他推广到$n$个的情况下可以用数学方法证明,只要任意的$gcd(m_i,m_j)\mid r_i-r_j$就有唯一的一个模 $[m_1,m_2,\dots ,m_n]$ 的解
111+
112+
不过在做计算机实现的时候大可不必如此[代码详见](https://github.com/DylanFrank/ACM_code/blob/master/math/%E6%95%B0%E8%AE%BA%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF%E6%80%BB%E7%BB%93.md),我们可以基于递推的方式在 $o(n)$ 的时间复杂度内完成计算,并且需要注意的是用新的值来计算剩余而不是用累乘起来的公倍数,防止溢出.

0 commit comments

Comments
 (0)