中国剩余定理(孙子定理)学习笔记
参考博客:https://blog.csdn.net/S_999999/article/details/89298179
啥是中国剩余定理
孙子定理是中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国余数定理。一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:
有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。《孙子算经》中首次提到了同余方程组问题,以及以上具体问题的解法,因此在中文数学文献中也会将中国剩余定理称为孙子定理。
用现代数学的语言来说明的话,中国剩余定理给出了以下的一元线性同余方程组:
有解的判定条件,并用构造法给出了在有解情况下解的具体形式。
中国剩余定理说明:假设整数m1,m2, ... ,mn两两互质,则对任意的整数:a1,a2, ... ,an,方程组(s) 有解,并且通解可以用如下方式构造得到:
证明:
以上都不是在说人话,以下我用人话解释一下
在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之 剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。
其实非常简单
主要分三步
- 找出三个数,例如:从3和5的公倍数中找出被7除余1的最小数15,从3和7的公倍数中找出被5除余1 的最小数21,最后从5和7的公倍数中找出除3余1的最小数70。
- 用15乘以2(2为最终结果除以7的余数),用21乘以3(3为最终结果除以5的余数),同理,用70乘以2(2为最终结果除以3的余数),然后把三个乘积相加15∗2+21∗3+70∗2得到和233。
- 用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)当做新的方程的模数。(这一段是关键)
中国剩余定理(孙子定理)学习笔记相关推荐
- 中国剩余定理(CRT)孙子定理学习笔记
在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?"这个问题称为" ...
- 中国剩余定理(孙子定理)的证明和c++求解
<孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...
- 中国剩余定理(孙子定理)(精华详细版!)
问题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 简单点说就是,存在一个数x,除以3余2,除以5余三,除以7余二,然后求这个数.上面给出了解法.再明白这个解法的原理之前,需要 ...
- 孙子定理c语言程序,中国剩余定理(孙子定理)的证明和c++求解
<孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...
- 中国剩余定理 (孙子定理) 的证明和代码
目录 [引入] [中国剩余定理] [代码实现] [借鉴于] [引入] <孙子算经>里有这样一个题目:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 术曰:" ...
- 中国剩余定理——孙子定理
孙子定理是中国古代求解一次同余式组(见同余)的方法.是数论中一个重要定理.又称中国余数定理. 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?即,一个整数除以三余二,除以五余三,除以 ...
- 中国剩余定理(孙子定理)详解
为什么发现了这个定理,这要源于一道题 淮安民间传说着一则故事--"韩信点兵",其次有成语"韩信点兵,多多益善".韩信带1500名兵士打仗,战死四五百人,站3人一 ...
- 中国剩余定理matlab程序,中国剩余定理即孙子定理的五种解法
中国剩余定理即孙子定理的五种解法 -- 学习初等数论心得笔记 2013-10-04 博文2015-12修改 "中国剩余定理"是公元5-6世纪.我国南北朝时期的一部著名算术著作< ...
- lucas定理 学习笔记
lucas定理 学习笔记 文章目录 lucas定理 学习笔记 介绍 combination 题目描述 输入格式 输出格式 样例 输入样例1 输出样例2 分析 code 扩展lucas 介绍 lucas ...
- 中国剩余定理即孙子定理的五种解法
加深一下理解,找了点纯数学的资料(老者善学,尤老骥伏枥,况乎我也): "中国剩余定理"是公元5-6世纪.我国南北朝时期的一部著名算术著作<孙子算经>中的一个" ...
最新文章
- 带评分的Jupyter资源列表:270个开源项目,总计24w星,帮你快速找代码
- Thread优先级之让步
- Swift - 选择框(UIPickerView)的用法
- 设置一段文字显示不同的颜色及大小等属性
- ICML2020 | 伯克利提出大模型提升Transformer的训练和推理效率
- 微信昵称emoj表情保存到mysql数据库时报错怎么解决?
- 稳定不掉线,翀旭用飞鱼星解决高密Wi-Fi接入
- Vc++安装包_Visual C++ 6.0中文版安装包下载及win11安装教程
- win10计算器_30年后终更新!新一代Win10记事本详细体验
- video call BT audio音频流程
- Hulu 2020年校招-算法题《Hulu杀》Python
- 怎么查询逆水寒服务器角色信息,逆水寒服务器状态
- 国内高校大数据教研机构调研报告
- Android 11.0 Camera2 默认选择拍照尺寸修改及流程分析
- 解决 libpng warning: iCCP: known incorrect sRGB profile
- Django分页组件
- 开发人工智能使用哪种编程语言好
- 动手学深度学习(十四)——权重衰退
- 家庭媒体中心解决方案(四、	群晖系列nas基本功能使用指南篇2)
- 数字化冲击下,美国最后一家贴纸生产工厂……
热门文章
- jwt token 太长_养三角梅,枝条太长怎么办
- 一文玩转RabbitMQ
- 基于JAVA的股票交易管理系统-计算机毕业设计
- 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令
- arcgis使用栅格计算器con与ISNULL函数,对栅格数据中缺失值/空值进行设置
- 从转换率开始网络营销的量化管理
- 来,让我们逐一澄清以太坊 2.0 五大误解
- 基于消息的异步松耦合系统
- Hive中的用户自定义函数UDF
- Android源码Demo地址:http://www.apkbus.com