• 初等数论四大定理--中国剩余定理


    中国剩余定理(CRT)
    内容:给定如下面形式的一元线性同余方程组

    [egin{equation} egin{cases} x &equiv a_1(mod m_1) \ x &equiv a_2(mod m_2) \ x &equiv a_3(mod m_3) \ &vdots quad quad quad otag \ x &equiv a_k(mod m_k) end{cases} end{equation} ]

    中国剩余定理就是用来求解这种方程组的
    (m_i)两两互质,则对任意整数:(a_i),方程组都有解

    M=$ prod_{i=1}^k m_i$ (qquad) (M_i)=(frac{ extbf{M}}{m_i} quad M_i t_i equiv 1(mod m_i))
    所以,M为所有方程模的乘积,(M_i)为除了第i个方程外所有方程模的乘积,(t_i为M_i)的逆元。
    通过构造法,我们可以得出解

    [x=a_1 t_1 M_1+a_2 t_2 M_2+cdots+a_k t_k M_k+kM=kM+sum_{i=1}^k a_i t_i M_i,k in Z$ ]

    如果是在模M的意义下,就只有一个解(x=(sum_{i=1}^k a_i t_i M_i) mod M)

    证明
    因为(m_i)两两互质,所以(m_i perp M_i)
    所以可以证明存在(t_i)
    所以

    [a_i t_i M_i equiv a_i cdot 1 equiv a_i (mod m_i) ]

    [a_i t_i M_i equiv a_i cdot 1 equiv 0 (mod m_j) , 1 le j le k,j e i ]

    所以 $$x= a_i t_i M_i + sum^{}_{j e i }a_j t_j M_j equiv a_i (mod m_i)$$
    所以x是方程组的一个解。
    另外,假设(x_1,x_2)都是方程组的解,那么

    [x_1-x_2equiv 0 (mod m_i) ,1 le i le k ]

    又因为(m_i)两两互质,所以M整除(x_1-x_2),所以该方程组的任意两个解之间必然相差M的整数倍。
    证毕

    扩展中国剩余定理(EXCRT)
    (m_i)不满足两两互质,则上述算法不成立。因为(m_i)不两两互质,则(m_i)不一定会与(M_i)互质,从而不一定有逆元,不能满足上述证明。这时候我们要换个思路:能不能把两个同余方程合并,得到解?

    [ egin{equation} egin{cases} x equiv a_1 ( mod m_1) \ x equiv a_2 (mod m_2)\ end {cases} end {equation} ]

    可以改写成

    [ egin{equation} egin{cases} x = a_1+k_1m_1 \ x =a_2+k_2m_2 \ end {cases} end {equation} ]

    [所以 \ a_1+k_1m_1=a_2+k_2m_2 \ m_1k_1-m_2k_2=a_2-a_1 \ ]

    这就是我们常见的二元一次不定方程了,可以用扩展欧几里得求得一组解(K1,K2)

    [显然当且仅当gcd(m_1,m_2) ackslash a_2-a_1有解 ]

    (K1,K2)同乘(frac{a_2-a_1}{gcd(m_1,m_2)})即可得到一组解((k_1,k_2))
    这样可以求出一个x,但是x的通解怎么求呢。
    不妨设(x_0,x_1)为两个解((x_0<x_1))
    因为两个解都满足上面两个同余方程,故存在两个(r_1,r_2)使得(x_1=x_0+r_1 imes m_1,x_1 = x_0+r_2 imes m_2)
    (x_1-x_0=Delta)
    显然有$r_1 imes m_1 = r_2 imes m_2 $
    (d=gcd(m_1,m_2),m_1^{prime}=frac{m_1}{d},m_2^{prime}=frac{m_2}{d})

    所以有(r_1 imes m_1^{prime}=r_2 imes m_2^{prime})

    所以有(m_1^{prime} ackslash r_2 imes m_2^{prime})
    因为(gcd(m_1^{prime},m_2^{prime})=1)
    所以(m_1^{prime} ackslash r_2),所以(m_1^{prime}m_2^{prime} ackslash r_2m_2^{prime})
    所以 (m_1^{prime}m_2^{prime}d ackslash r_2 imes m_2^{prime}d)
    所以(m_1^{prime}m_2^{prime}d ackslash Delta)
    (m_1^{prime}m_2^{prime}d =frac{m_1^{prime}m_2^{prime}d^2}{d}=frac{m_1 m_2}{d}=lcm(m_1,m_2))
    (lcm(m_1,m_2) ackslash Delta)
    所以任意两个解之间差都是模数的lcm倍
    所以x的通解为(x_0+k*lcm(m_1,m_2),k in Z)

    本文来自博客园,作者:{2519},转载请注明原文链接:https://www.cnblogs.com/QQ2519/p/15042132.html

  • 相关阅读:
    JAVA软件开发职责
    Redis主从复制配置
    VirtualBox安装Ubuntu教程
    分段锁——ConcurrentHashMap
    阻塞队列BlockingQueue用法
    阻塞队列--LinkedBlockingQueue
    MySQL百万级数据库优化方案
    获取主机的对外ip
    联通沃云开启80端口
    Nginx 正则匹配
  • 原文地址:https://www.cnblogs.com/QQ2519/p/15042132.html
Copyright © 2020-2023  润新知