• 数论新知识---扩展中国剩余定理(EXCTR)


    新的数论

    EXCTR(扩展中国剩余定理)

    • 我们知道,中国剩余定理是用来解同余方程组

    [left{ egin{aligned} x ≡ c_1(mod &m_1) \ x ≡ c_2(mod&m_2) \ . \ . \ . \ x ≡ c_r(mod &m_r) end{aligned} ight. ]

    • 但是有一个非常令人不爽的事情就是它要求(m_1,m_2…,m_r)两两互素
      如果某个毒瘤出题人偏要求它们不互素呢?
      那就没办法了鸭,只能打死出题人 才怪

    • 其实也有解决的办法
      就是把出题人吊起来干一顿扩展中国剩余定理(exctr)(敲重点)

    • 扩展中国剩余定理跟中国剩余定理没半毛钱关系,一个是用扩展欧几里得,一个是用构造

      • 首先我们还是从简单入手,考虑一下如果同余方程组只有两个式子的情况

    [x≡c_1(mod m_1)$$ $$x≡c_2(mod m_2) ]

    将两个式子变形

    [x=c_1+m_1k_1$$ $$x=c_2+m_2k_2 ]

    联立

    [c_1+m_1k_1=c_2+m_2k_2 ]

    移项

    [m_1k_1=c_2−c_1+m_2k_2 ]

    我们用(a,b)表示a,b的最大公约数
    在这里需要注意,这个方程有解的条件是((m_1,m_2)|(c_2−c_1)),因为后面会用到(frac {(c_2−c_1)}{(m_2,m_1)})这一项,如果不整除的话肯定会出现小数。                                
    对于上面的方程,两边同除((m_1,m_2))

    [frac {m_1k_1}{(m_1,m_2)}=frac {c_2−c_1}{(m_1,m_2)}+frac {m_2k_2}{(m_1,m_2)}$$ $$frac {m_1}{(m_1,m_2)}k_1=frac {c_2−c_1}{(m_1,m_2)}+frac {m_2}{(m_1,m_2)}k_2 ]

    转换一下

    [frac {m_1}{(m_1,m_2)}k_1≡frac {c_2−c_1}{(m_1,m_2)}(mod frac {m_2}{(m_1,m_2)}) ]

    此时我们已经成功把(k_2)消去了。
                
    同余式两边同除(frac {m_1}{(m_1,m_2)})

    [k_1≡inv(frac {m_1}{(m_1,m_2)},frac {m_2}{(m_1,m_2)})∗frac {(c_2−c_1)}{(m_1,m_2)}(mod frac {m_2}{(m_1,m_2)}) ]

    inv(a,b)表示a在模b意义下的逆元

    [k_1=inv(frac {m_1}{(m_1,m_2)},frac {m_2}{(m_1,m_2)})∗frac {(c_2−c_1)}{(m_1,m_2)}+frac {m_2}{(m_1,m_2)}∗y ]

    接下来怎么办呢?这个式子已经化到最简了。。。
    不要忘了,我们刚开始还有两个式子。我们把(k_1)代回去!

    [x=inv(frac {m_1}{(m_1,m_2)},frac {m_2}{(m_1,m_2)})∗frac {(c_2−c_1)}{(m_1,m_2)}∗m_1+yfrac {m_1m_2}{(m_1,m_2)}+c_1$$ $$x≡inv(frac {m_1}{(m_1,m_2)},frac {m_2}{(m_1,m_2)})∗frac {(c_2−c_1)}{(m_1,m_2)}∗m_1+c_1(modfrac {m_1m_2}{(m_1,m_2)}) ]

    此时,整个式子中的元素我们都已经知道了
    具体一点,这个式子可以看做是

    [x≡c (mod m) ]

    其中

    [c=(inv(frac {m_1}{(m_1,m_2)},frac {m_2}{(m_1,m_2)})∗frac {(c_2−c_1)}{(m_1,m_2)})\%frac {m_2}{(m_1,m_2)}∗m_1+c_1$$ $$m=frac {m_1m_2}{(m_1,m_2)} ]

    * 推广一下:我们每次把两个同余式合并,求解之后得到一个新的同余式。再把新的同余式和其他的联立,最终就可以求出满足条件的解。
  • 相关阅读:
    ORACLE数据库逐步解决ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA00132的过程
    Windows下MySQL主从复制的配置
    Windows下Git的使用
    spring boot 2 集成JWT实现api接口认证
    spring boot 2 全局统一返回RESTful风格数据、统一异常处理
    spring boot 2 + shiro 实现权限管理
    Java 密码加盐
    Java中往zip压缩包追加文件
    IntelliJ IDEA 安装、配置和使用Lombok插件
    大规模微服务单元化与高可用设计
  • 原文地址:https://www.cnblogs.com/orange-233/p/12398739.html
Copyright © 2020-2023  润新知