参考博客:https://blog.csdn.net/S_999999/article/details/89298179

啥是中国剩余定理

孙子定理是中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国余数定理。一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:

有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。《孙子算经》中首次提到了同余方程组问题,以及以上具体问题的解法,因此在中文数学文献中也会将中国剩余定理称为孙子定理。

用现代数学的语言来说明的话,中国剩余定理给出了以下的一元线性同余方程组:

有解的判定条件,并用构造法给出了在有解情况下解的具体形式。

中国剩余定理说明:假设整数m1,m2, ... ,mn两两互质,则对任意的整数:a1,a2, ... ,an,方程组(s) 有解,并且通解可以用如下方式构造得到:

证明:

以上都不是在说人话,以下我用人话解释一下

在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之  剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。

其实非常简单

主要分三步

  1. 找出三个数,例如:从3和5的公倍数中找出被7除余1的最小数15,从3和7的公倍数中找出被5除余1 的最小数21,最后从5和7的公倍数中找出除3余1的最小数70。
  2. 用15乘以2(2为最终结果除以7的余数),用21乘以3(3为最终结果除以5的余数),同理,用70乘以2(2为最终结果除以3的余数),然后把三个乘积相加15∗2+21∗3+70∗2得到和233。
  3. 用233除以3,5,7三个数的最小公倍数105,得到余数23,即233%105=23。这个余数23就是符合条件的最小数。

模板

//中国剩余定理模板
typedef long long ll;
ll china(ll a[],ll b[],int n)//a[]为除数,b[]为余数
{ll M=1,y,x=0;for(int i=0;i<n;++i)  //算出它们累乘的结果M*=a[i];for(int i=0;i<n;++i){ll w=M/a[i];ll tx=0;int t=exgcd(w,a[i],tx,y);  //计算逆元x=(x+w*(b[i]/t)*x)%M; }return (x+M)%M;
}

中国剩余定理扩展——求解模数不互质情况下的线性方程组

普通的中国剩余定理要求所有的互素,那么如果不互素呢,怎么求解同余方程组?

这种情况就采用两两合并的思想,假设要合并如下两个方程:

那么能够得到:

我们需要求出一个最小的x使它满足

那么x1和x2就要尽可能的小,于是我们用扩展欧几里得算法求出x1的最小正整数解,将它代回a1+m1x1,得到xx的一个特解x′,当然也是最小正整数解。

  所以x的通解一定是x′加上lcm(m1,m2)∗k,这样才能保证x模m1和m2的余数是a1和a2。由此,我们把这个x′当做新的方程的余数,把lcm(m1,m2)当做新的方程的模数。(这一段是关键

中国剩余定理(孙子定理)学习笔记相关推荐

  1. 中国剩余定理(CRT)孙子定理学习笔记

    在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?"这个问题称为" ...

  2. 中国剩余定理(孙子定理)的证明和c++求解

    <孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...

  3. 中国剩余定理(孙子定理)(精华详细版!)

    问题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 简单点说就是,存在一个数x,除以3余2,除以5余三,除以7余二,然后求这个数.上面给出了解法.再明白这个解法的原理之前,需要 ...

  4. 孙子定理c语言程序,中国剩余定理(孙子定理)的证明和c++求解

    <孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...

  5. 中国剩余定理 (孙子定理) 的证明和代码

    目录 [引入] [中国剩余定理] [代码实现] [借鉴于] [引入] <孙子算经>里有这样一个题目:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 术曰:" ...

  6. 中国剩余定理——孙子定理

    孙子定理是中国古代求解一次同余式组(见同余)的方法.是数论中一个重要定理.又称中国余数定理. 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?即,一个整数除以三余二,除以五余三,除以 ...

  7. 中国剩余定理(孙子定理)详解

    为什么发现了这个定理,这要源于一道题 淮安民间传说着一则故事--"韩信点兵",其次有成语"韩信点兵,多多益善".韩信带1500名兵士打仗,战死四五百人,站3人一 ...

  8. 中国剩余定理matlab程序,中国剩余定理即孙子定理的五种解法

    中国剩余定理即孙子定理的五种解法 -- 学习初等数论心得笔记 2013-10-04 博文2015-12修改 "中国剩余定理"是公元5-6世纪.我国南北朝时期的一部著名算术著作< ...

  9. lucas定理 学习笔记

    lucas定理 学习笔记 文章目录 lucas定理 学习笔记 介绍 combination 题目描述 输入格式 输出格式 样例 输入样例1 输出样例2 分析 code 扩展lucas 介绍 lucas ...

  10. 中国剩余定理即孙子定理的五种解法

    加深一下理解,找了点纯数学的资料(老者善学,尤老骥伏枥,况乎我也): "中国剩余定理"是公元5-6世纪.我国南北朝时期的一部著名算术著作<孙子算经>中的一个" ...

最新文章

  1. 带评分的Jupyter资源列表:270个开源项目,总计24w星,帮你快速找代码
  2. Thread优先级之让步
  3. Swift - 选择框(UIPickerView)的用法
  4. 设置一段文字显示不同的颜色及大小等属性
  5. ICML2020 | 伯克利提出大模型提升Transformer的训练和推理效率
  6. 微信昵称emoj表情保存到mysql数据库时报错怎么解决?
  7. 稳定不掉线,翀旭用飞鱼星解决高密Wi-Fi接入
  8. Vc++安装包_Visual C++ 6.0中文版安装包下载及win11安装教程
  9. win10计算器_30年后终更新!新一代Win10记事本详细体验
  10. video call BT audio音频流程
  11. Hulu 2020年校招-算法题《Hulu杀》Python
  12. 怎么查询逆水寒服务器角色信息,逆水寒服务器状态
  13. 国内高校大数据教研机构调研报告
  14. Android 11.0 Camera2 默认选择拍照尺寸修改及流程分析
  15. 解决 libpng warning: iCCP: known incorrect sRGB profile
  16. Django分页组件
  17. 开发人工智能使用哪种编程语言好
  18. 动手学深度学习(十四)——权重衰退
  19. 家庭媒体中心解决方案(四、 群晖系列nas基本功能使用指南篇2)
  20. 数字化冲击下,美国最后一家贴纸生产工厂……

热门文章

  1. jwt token 太长_养三角梅,枝条太长怎么办
  2. 一文玩转RabbitMQ
  3. 基于JAVA的股票交易管理系统-计算机毕业设计
  4. 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令
  5. arcgis使用栅格计算器con与ISNULL函数,对栅格数据中缺失值/空值进行设置
  6. 从转换率开始网络营销的量化管理
  7. 来,让我们逐一澄清以太坊 2.0 五大误解
  8. 基于消息的异步松耦合系统
  9. Hive中的用户自定义函数UDF
  10. Android源码Demo地址:http://www.apkbus.com