中国剩余定理
中国剩余定理,Chinese Remainder Theorem,又称CRT,我们接下来就讲一下这个算法的原理。 要说原理,就得从古代说起。 (你到底是在讲编程课还是在讲历史课) (真的是在将编程课) 在古代,有一个问题,叫做“物不知数问题”,原文是这样的: 有物不知其数 三三数之剩二 五五数之剩三 七七数之剩二 问物几何? 这个问题翻译过来就是问以下方程的所有正整数解: $ \begin{cases} x \equiv 2 \pmod{3} \ x \equiv 3 \pmod{5} \ x \equiv 2 \pmod{7} \end{cases} $ 这个问题在后来有一个解了,解出来这个问题的人,编了一首诗,叫做“孙子歌诀”,原文: 三人同行七十稀 五树梅花廿一支 七子团圆正半月 除百零五便得知 这个解翻译过来就是说,若设 $r_3$ 为方程中 $x$ 模 $3$ 的余数,$r_5$、$r_7$ 同理,那么所有解 $x$ 一定满足: $x \equiv r_3 \times 70+r_5 \times 21+r_7 \times 15 \pmod{105}$ 其中 $105$ 的实际来源是上面三个方程的模数的 $\text{lcm}$,即 $\text{lcm}(3,5,7)=3 \times 5 \times 7=105$。 关于 $70$、$21$、$15$ 的来源下面再说,我们先证明一下这个解是正确的。 由于 $105$ 是三个模数的 $\text{lcm}$,所以说如果 $x$ 是满足条件的,$x-105$、$x+105$ 都是满足条件的(此处暂时忽略“正整数解”的限制),显然。 ...