zoukankan      html  css  js  c++  java
  • 写一下中国剩余定理的证明

    中国剩余定理

    简单记录一下推倒过程吧。

    搞这种方程的。

    (x\%m_1=c_1,x\%m_2=c_2,x\%m_3=c_3..........)

    EXCRT

    先来表演,将两个方程合并:
    (x\%m_1=c_1), (x\%m_2=c_2)

    Duang!Duang!

    (x=k_1m_1+c_1=k_2m_2+c_2)

    (k_1m_1-k_2m_2=c_2-c_1)

    (g=gcd(m_1,m_2)),有(k_1frac{m_1}{g}-k_2frac{m_2}{g} = frac{c_2-c_1}{g})

    在模(frac{m_2}{g})系下:(frac{m_1}{g}k_1= frac{c_2-c_1}{g})

    解得(k_1=frac{c_2-c_1}{g}*inv(frac{m_1}{g},frac{m_2}{g}) + kfrac{m_2}{g})

    (x=[frac{c_2-c_1}{g}*inv(frac{m_1}{g},frac{m_2}{g}) m_1+c_1]+kfrac{m_1m_2}{g})

    好了,两个同余方程就这么合并了。然后我们对于那(n)个方程合并(n-1)次,就是EXCRT了

    emmm. 同余方程的合并和生成树这种东西,是不是可以珠联璧合。然后搞出什么有趣的东西啊。

    CRT

    这个一点也不好用,还得保证(m_1,m_2...)两两互质。

    有种暴力构造的感觉。

    直接给答案啦(x=sum c_ifrac{M}{m_i}inv(frac{M}{m_i},m_i))

    因为在模(m_i)系下(frac{M}{m_i}inv(frac{M}{m_i},m_i)=1)

    所以当且仅当(i=x)时,(c_ifrac{M}{m_i}inv(frac{M}{m_i},m_i)\%m_x=c_x),否则(c_ifrac{M}{m_i}inv(frac{M}{m_i},m_i)\%m_x=0)

    问:为什么要求两两互质啊?

    答:不互质,求个锤子逆元吖!

  • 相关阅读:
    Python深入:编码问题总结
    Search for a Range
    Search in Rotated Sorted Array
    WebStrom 多项目展示及vuejs插件安装
    高强度减脂Tabata练习
    webStrom 美化
    myeclipse 与 webstrom 免解析node_modules 的方法
    node-webkit 入门
    vue框架搭建
    Electron_01
  • 原文地址:https://www.cnblogs.com/RUSH-D-CAT/p/9736224.html
Copyright © 2011-2022 走看看