zoukankan      html  css  js  c++  java
  • 中国剩余定理介绍

    学数论中我们听说过中国剩余定理,也称孙子定理
    那么它到底是什么呢?自搜百度百科

    好了开始讲~

    首先の铺垫

    (a)%(b=c)

    ((a imes k))%(b=(c imes k))%(b)

    (感性理解即可证明,后面要用)

    引入一个例子(也是此定理的来源)

    求一个数最小的正整数x满足:
    (egin{cases}{xequiv2mod3}&\{xequiv3mod5}&\ {xequiv2mod7}&end{cases})

    这道题当时给出了一种做法:

    先找出(x_1,x_2,x_3)满足
    (egin{cases}{x_1equiv 2mod3}\{(5 imes7)|x_1}end{cases})

    (egin{cases}{x_2equiv 3mod5}\{(3 imes7)|x_2}end{cases})

    (egin{cases}{x_3equiv 2mod7}\{(3 imes5)|x_3}end{cases})

    (x_1=35) (x_2=63) (x_3=30)

    答案就是((x_1+x_2+x_3)mod gcd(3,5,7)=128mod 105=23)

    推广一下

    概述来看这个中国剩余定理就是:

    要求正整数x满足:
    (egin{cases}{xequiv c_1mod m_1}\{xequiv c_2mod m_2}\{quadvdots}\{xequiv c_nmod m_n}end{cases})

    做法为:设(sum=m_1 imes m_2 imes cdots imes m_n)
    那么找出(x_1,x_2,…,x_n)满足:
    (egin{cases}{x_1equiv 1mod m_1}\{(sum/m_1)|x_1}end{cases})

    (egin{cases}{x_2equiv 1mod m_2}\{(sum/m_2)|x_2}end{cases})

    (egin{cases}{x_3equiv 1mod m_3}\{(sum/m_3)|x_3}end{cases})

    (x_i)应包含(sum/m_i),才可以满足第二个条件
    要满足((sum/m_i))乘一个数(mod) (m_i)(1)
    则那个数就是((sum/m_i))的模(m_i)的逆元,表示为((sum/m_i)^{-1})
    再结合下前置芝士可得最后的(x)的表达:

    (displaystylesum^{n}_{i=1}c_i imes(sum/m_i) imes(sum/m_i)^{-1 (注意是mod m_i的逆元)})

    结语

    好了就是这些
    逆元的话就作为自学知识吧,之后会附上关于逆元的介绍
    百度百科上说的比较奇妙,较为难懂
    希望上述说的知识大家可以理解!!

    Reality&Imagine
  • 相关阅读:
    Springboot中使用Interceptor(拦截器)
    八大排序之冒泡排序
    八大排序之快速排序
    mysql 用户的增删改与授权
    基于Java8开发接口时,处理Java8中的日期
    Springboot中Filter的使用
    正则校验日期,不考虑闰年和闰月
    正则校验时间,24小时制
    记一下mybatis中foreach循环遇到的一个小问题
    sqlserver中一条语句执行查询与更新
  • 原文地址:https://www.cnblogs.com/yang-RA-NOI/p/13441019.html
Copyright © 2011-2022 走看看