zoukankan      html  css  js  c++  java
  • 中国剩余定理(孙子定理)

      中国剩余定理,也叫孙子定理,是数论中的又一个重要定理,那么它是干什么用的呢?简单来说,这是一个用来求一元线性同余方程组的定理。叫做孙子定理的原因就是该定理最早可见于南北朝时期的著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:

      有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?

      翻译一下,就是说,一个数除以三余二,除以五余三,除以七余二,求这个整数。

      接下来,我们把这一道题作为例题,探究一下如何利用孙子定理搞定同余方程组

    例1:

      求解一元线性同余方程组:

                  x ≡ 2 ( mod 3 )

                  x ≡ 3 ( mod 5 )

                  x ≡ 2 ( mod 7 )

      解:

        做题依据:

        当p1 , p, ……互质的时候,有 x ≡ (a1 qq1-1 + a2 qq2-1 +……)mod P

        其中P = pp2……, q= p / pi ,qi-1 为 qi 在模pi 意义下的逆元

        对于这道题,x ≡ (2 * 35 * 2 + 3 * 21 * 1+ 2 * 15 * 1)mod 105 = 23

    例2:

      求解一元线性同余方程组:

                  x ≡ 3(mod 12)

                  x ≡ 2(mod 18)

      解:

        做题依据

        当p不互质时,有x ≡ a( mod p1 ) = = > x = a+ pb1,  x ≡ a2 ( mod p2 ) = = > x = a2 + p2 b2

        所以pb- pb= a- a1

        用扩展欧几里得得解

        因此不断合并方程即可

    代码实现参考拓展欧几里得算法https://www.cnblogs.com/juruohqk/p/10544298.html

    2019-04-09 11:39:10

  • 相关阅读:
    用Python实现QQ找茬游戏外挂工具
    Python常用模块
    将Qt 动态链接生成的exe及依赖dll打包方法
    Qt之VLFeat SLIC超像素分割(Cpp版)
    android studio下的NDK开发详解(一)
    条件注释判断浏览器版本<!--[if lt IE 9]>
    人脸识别中的八大难题,何时能解
    人脸识别简史与近期进展
    openCV之头文件分析
    看(学习)代码流程
  • 原文地址:https://www.cnblogs.com/juruohqk/p/10675965.html
Copyright © 2011-2022 走看看