拓展CRT算法
CRT算法(中国剩余算法)主要用于解决除法操作之后存在余数方程组的问题。CRT算法中除数之间互质,基于此性质,可以方便组织出解的形式。但是拓展CRT算法取消了该性质,故此不得不对方程中的各个算式逐一处理。
已知除数序列 d [ ] d[] d[] 和 余数序列 r [ ] r[] r[],计算最小的符合条件的 x x x。其中,除数序列中各个数值未必互质。已知三者存在如下方程组规则:
KaTeX parse error: No such environment: align at position 16: \left\{ \begin{̲a̲l̲i̲g̲n̲}̲ x &= r_1\ \ (…
拓展CRT算法的主要思路是:对方程组中的每个算式依次合并,最终合并为一个算式 x = r ′ ( m o d d ′ ) x=r'\ (mod\ d') x=r′ (mod d′),最后通过该算式计算符合条件的最小值。
合并两个算式
先合并前两个算式。记系数为 k i k_i ki,由前两个算式可以表示为:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ x &= k_1\cdot…
由于该算法的主要思路就是进行算式合并,故引用当前例子描述合并的行为。先合并以上两个式子有
k 1 ⋅ d 1 − k 2 ⋅ d 2 = r 2 − r 1 = k ⋅ g c d ( d 1 , d 2 ) k_1\cdot d_1 - k_2\cdot d_2 = r_2 - r1 = k\cdot gcd(d_1, d_2) k1⋅d1−k2⋅d2=r2−r1=k⋅gcd(d1,d2)
对当前的化简式子进行分析:
- 无解情况。若 r 2 − r 1 r_2 - r_1 r2−