Java教程

中国剩余定理

本文主要是介绍中国剩余定理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

简介

中国剩余定理 (Chinese Remainder Theorem, CRT) 可求解如下形式的一元线性同余方程组(其中\(m_1,m_2,...,m_k\) 互质

\[\left\{\begin{array}{ccc} {x} & {\equiv} & {a_{1}\left(\bmod \ m_{1}\right)} \\ {x} & {\equiv} & {a_{2}\left(\bmod \ m_{2}\right)} \\ {} & {\vdots} & {} \\ {x} & {\equiv} & {a_{n}\left(\bmod \ m_{k}\right)} \end{array}\right. \]

算法

  1. 设\(M=\prod_{i=1}^{k} m_{i} \ , \ M_{i}=\frac{M}{m_{i}} \ , \ M_{i} t_{i} \equiv 1 \ \left(\bmod m_{i}\right)\) , 其中 $ 1 \leq i \leq k$ ,

  2. 构造出一通解 \(x=\sum_{i=1}^{k} a_{i} M_{i} t_{i}\) ,

  3. 得 任意解为 \(x_0 = x+k * M\) ,

  4. 得 最小整数解 为 \(x_{min} = x_0 \% M\) .

证明

当 \(i \neq j\) 时 , 有

\[a_{j} M_{j} t_{j} \equiv 0\left(\bmod \ m_{i}\right) \]

当 \(i = j\) 时 , 有

\[a_{i} M_{i} t_{i} \equiv a_{i}\left(\bmod \ m_{i}\right) \]

故满足\(\sum_{i=1}^{k} a_{i} M_{i} t_{i} \equiv a_{i}\left(\bmod \ m_{i}\right)\)

这篇关于中国剩余定理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!