zoukankan      html  css  js  c++  java
  • 证明:数论四大定理之中国剩余定理

    中国剩余定理(CRT)的证明

    前言

    • 作为数论四大定理之一,中国剩余定理(又名孙子定理)的重要性不言而喻,到底还是自家的东西
    • 其主要用于求解一元线性同余方程组。
    • 通俗来讲,就是我们从小听到大的问题:“有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”明明一点也不通俗。用白话文来讲就是有一堆东西,三个三个地数多两个,五个五个地数多三个,七个七个地数多两个,问这堆东西一共有多少个。变成小学奥数就是什么分馒头,什么坐公交车之类的

    Description:

    • \(m_1,m_2,\cdots,m_n\)两两互质的整数,\(m=\prod_{i=1}^{n}m_i\)\(M_i=m/m_i\)\(t_i\) 是线性同余方程 \(M_it_i\equiv 1\:(mod\:m_i)\) 的一个解(即 \(M_i\) 在模 \(m_i\) 意义下的逆元)。则对于任意的 \(n\) 个整数 \(a_1,a_2,\cdots,a_n\) ,同余方程组

      \[\left\{\begin{matrix}x\equiv a_1\:&(mod\:m_1)\\ x\equiv a_2\:&(mod\:m_2)\\ \vdots&\\x\equiv a_n\:&(mod\:m_n)\\ \end{matrix}\right. \]

      有整数解为 \(ans=\sum_{i=1}^{n}a_iM_it_i\)

    证明:

    • 因为 \(M_i=m/m_i\) 是除 \(m_i\) 之外所有模数的倍数,所以 \(\forall k\neq i,a_iM_it_i\equiv 0\:(mod\:m_k)\)
    • 又因为 \(M_it_i\equiv 1\:(mod\:m_i)\) ,所以 \(a_iM_it_i\equiv a_i\:(mod\:m_i)\)
    • 综上所述,将公式带入原方程组即能够满足所有的同余式。

    证毕。

    后话

    • \(To\:be\:frank\),中国剩余定理其实挺简单的,而且也比较好感性理解,最重要的是,有了这个定理,再也不用担心不会写小学奥数了
    • 但是不得不说,中国剩余定理具有一定的局限性,就是其必须要求所有的模数都互质,如果不互质的话则不能运用中国剩余定理解线性同余方程组(从逆元的角度理解也可以),但是在一般的题目都不满足互质这个性质。
    • 那么这个时候我们应该怎么办?很简单,用扩展中国剩余定理 \((excrt)\) 求解就好,OI人,OI魂,OI都是人上人
    • 说是扩展中国剩余定理,但是却和中国剩余定理没有半毛钱关系,顶多也就算是求解的类型一样而已。
    • 其具体思路就是将两个线性同余方程组合并成一个,然后不断两两合并,最后得解。因为不再本博客的讨论范围,在这里就不再赘述,感兴趣请自行百度。

    2021年1月16日
    ——pycr

    靡不有初,鲜克有终
  • 相关阅读:
    根据不同运行环境配置和组织node.js应用
    python下pip使用bug汇总
    python的虚拟环境
    nginx使用手册--nginx的命令行参数
    nginx使用手册--nginx.conf文件配置详解
    使用async读取异步数据
    [Bootstrap]组件(三)
    [Bootstrap]组件(二)
    [Bootstrap]组件(一)
    [javascript|基本概念|一元操作符]学习笔记
  • 原文地址:https://www.cnblogs.com/pycr/p/14287627.html
Copyright © 2011-2022 走看看