• 扩展中国剩余定理 (exCRT) 的证明与练习


    原文链接https://www.cnblogs.com/zhouzhendong/p/exCRT.html

    扩展中国剩余定理 (exCRT) 的证明与练习

    问题模型

      给定同余方程组

    $$egin{cases}x&equiv&x_1&pmod {p_1}\x&equiv&x_2&pmod {p_2}\ &&vdots\x&equiv&x_n&pmod {p_n}end{cases}$$

      求解 $x$ 在对 ${ m lcm}(p_1,p_2,cdots ,p_n)$ 取模的意义下的值,或判断无解。

    证明

      我们只需要知道如何合并两个方程,就可以将原方程组逐个合并了,所以下面只介绍合并两个方程的方法。

    $$egin{eqnarray*}x&equiv& a_1&pmod {p_1}\x&equiv& a_2&pmod {p_2}end{eqnarray*}$$

      则 $x=a_1+k_1p_1=a_2+k_2p_2$ 。

      令 $p={ m lcm}(p_1,p_2)$,需要求形同 $xequiv apmod p$的一个式子。

    $$egin{eqnarray*}a_1+k_1p_1&equiv&a_2+k_2p_2 &pmod {p}\a_2-a_1&equiv&k_1p_1-k_2p_2 & pmod {p}end{eqnarray*}$$

      我们先用 exgcd 求解方程 $p_1x+p_2y=gcd(p_1,p_2)$。设 $g=gcd(p_1,p_2),z=a_2-a_1$。

      由于 $g|p$ ,所以,如果 $g|z$ 不成立,那么显然 $g+kp|z$ 也不成立,故无解。

      否则有解。记 $t=frac zg$ ,则 $k_1=tx_1,k_2=-tx_2$,于是,$aequiv a_1+k_1p_1equiv a_2+k_2p_2pmod p$ ,单次合并完成。

    习题

    模板题

      POJ2891

      注:由于博主是很久之前做这道模板题的,所以这份模板很丑。要看模板建议看下面的习题内的代码。

    习题

      NOI2018Day2T1

  • 相关阅读:
    Java里if...else语句
    Java里for循环和增强版循环;break语句:跳出循环;continue:跳转循环
    Java里while循环和do...while循环
    static 修饰符
    Java类变量(静态变量)
    Java实例变量
    Java局部变量
    Java访问实例变量和调用成员方法
    Java里import语句使用
    声明式服务调用
  • 原文地址:https://www.cnblogs.com/zhouzhendong/p/exCRT.html
Copyright © 2020-2023  润新知