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