中国剩余定理 CRT

正常版本CRT

要解的是一个很容易的东西
\[
\begin{aligned}
x\equiv a_1(mod\ m_1)\\
x\equiv a_2(mod\ m_2)\\
...\\
x\equiv a_n(mod\ m_n)
\end{aligned}
\]
保证\(m_1,m_2...m_n\)之间两两互质,求最小的\(x\)。

设\(M=\prod m_i\)。

首先我们确定一点,我们求出了任意一个满足条件的\(x\)之后,只需要对其模\(M\)就是最终的答案。

因为\(M\)是所有数的\(lcm\)。

考虑一下,对于每一个\(a_i\),如果我们能够求出一个数\(x_i\)

满足它是其他所有\(m\)的乘积,即\(M_i=M/m_i\)的倍数,并且\(x_i\equiv 1(mod\ m_i)\)

也就是对于任意一个\(x_i\),满足\(x_i\equiv 0(mod\ m_k),k\ne i\),\(x_i\equiv 1(mode\ m_i)\)

那么最终的答案就会是\(\sum(a_ix_i)mod\ M\)。

深思熟虑的考虑如何求出\(x_i\),

因为\(x_i\)是\(M_i\)的倍数,所以\(x_i=kM_i\equiv 1(mod\ m_i)\)

所以\(k\)是\(M_i\)在模\(m_i\)意义下的逆元。所以\(x_i\)就是\(k\)的\(M_i\)倍,注意最终统计入结果的模数是\(M\)。

所以,\(CRT\)的结果就是\(\sum (a_ik_iM_i)mod\ M\)。

不正常版本CRT

要求的东西同上,不保证所有\(m_i\)互质。

我们肯定不能像上面那样堆在一起求了。

换个方法,假设我们只有两个方程。\(x\equiv a_1(mod\ m_1),x\equiv a_2(mod\ m_2)\)

怎么算答案?

显然是要满足:\(x=x_1m_1+a_1=x_2m_2+a_2\),并且\(x\)最小。

显然是\(x_1,x_2\)都要尽可能的小。

所以\(x_1m_1+x_2m_2=a_2-a_1\)

那么\(exgcd\)可以求解最小的\(x_1\),然后就可以求得\(x=x_1m_1+a_1\)

这样子就可以同时满足这两个方程了,因为方程有多个,

所以我们把这两个方程合并,假设当前求出来的解是\(x'\)

那么我们就新加入一个方程\(x\equiv x'(mod\ lcm(m_1,m_2))\)就好了。

中国剩余定理 CRT的更多相关文章

  1. 中国剩余定理(CRT) & 扩展中国剩余定理(ExCRT)总结

    中国剩余定理(CRT) & 扩展中国剩余定理(ExCRT)总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300035 前置浅讲 前 ...

  2. 中国剩余定理(CRT)及其扩展(EXCRT)详解

    问题背景   孙子定理是中国古代求解一次同余式方程组的方法.是数论中一个重要定理.又称中国余数定理.一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作<孙子算经>卷下第 ...

  3. 扩展GCD 中国剩余定理(CRT) 乘法逆元模版

    extend_gcd: 已知 a,b (a>=0,b>=0) 求一组解 (x,y) 使得 (x,y)满足 gcd(a,b) = ax+by 以下代码中d = gcd(a,b).顺便求出gc ...

  4. 中国剩余定理(CRT)及其拓展(ExCRT)

    中国剩余定理 CRT 推导 给定\(n\)个同余方程 \[ \left\{ \begin{aligned} x &\equiv a_1 \pmod{m_1} \\ x &\equiv ...

  5. 学习笔记:中国剩余定理(CRT)

    引入 常想起在空间里见过的一些智力题,这个题你见过吗: 一堆苹果,\(3\)个\(3\)个地取剩\(1\)个,\(5\)个\(5\)个地取剩\(1\)个,\(7\)个\(7\)个地取剩\(2\)个,苹 ...

  6. CRT&EXCRT 中国剩余定理及其扩展

    前言: 中国剩余定理又名孙子定理.因孙子二字歧义,常以段子形式广泛流传. 中国剩余定理并不是很好理解,我也理解了很多次. CRT 中国剩余定理 中国剩余定理,就是一个解同余方程组的算法. 求满足n个条 ...

  7. 扩展中国剩余定理(扩展CRT)详解

    今天在$xsy$上翻题翻到了一道扩展CRT的题,就顺便重温了下(扩展CRT模板也在里面) 中国剩余定理是用于求一个最小的$x$,满足$x\equiv c_i \pmod{m_i}$. 正常的$CRT$ ...

  8. 欧几里得(辗转相除gcd)、扩欧(exgcd)、中国剩余定理(crt)、扩展中国剩余定理(excrt)简要介绍

    1.欧几里得算法(辗转相除法) 直接上gcd和lcm代码. int gcd(int x,int y){ ?x:gcd(y,x%y); } int lcm(int x,int y){ return x* ...

  9. 【CRT】中国剩余定理简介

    中国剩余定理(CRT) 中国剩余定理出自中国的某本古书,似乎是孙子兵法?(雾 其中有这样一个问题: 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 即,对于这样一个方程组: \[ ...

随机推荐

  1. Android 为TV端助力

    记录两次事情: 第一个给view添加动画效果,需要保证view是可以获取焦点的 第二个给listview,GridView设置选择器 listselector时,要保证他的子item无背景,否则选择器 ...

  2. 新更新,又是一年了。这次记录下关于android版的WeiboDemo的问题

    时隔一年多,现在又开始折腾android的代码了.之前看了Learning android,就想看下能否移植到Weibo.然后就下了weibo的代码,代码包里有个实例叫WeiboSDKDemo. 为了 ...

  3. Spark之谓词下推

    谓词下推就是指将各个条件先应用到对应的数据上,而不是根据写入的顺序执行,这样就可以先过滤掉部分数据,降低join等一系列操作的数据量级,提高运算速度,如下图:

  4. Type '' cannot conform to protocol '' because it has requirements that cannot be satisfied

    我有一个Objective-C协议,我试图在Swift类中实现.例如: @class AnObjcClass; @protocol ObjcProtocol <NSObject> - (v ...

  5. macOS 安装 Java (Homebrew)

    macOS 安装多个 Java 版本 Homebrew 是 macOS 下的一个非常好用的包管理工具, caskroom 则是基于 Homebrew 构建的一个强大的应用程序管理器. Homebrew ...

  6. chome(谷歌浏览器)上传文件崩溃/上传图片崩溃/打开浏览文件未响应 解决方案

    测试解决方案:关闭搜狗输入法(我用的是搜狗输入法,若使用其他输入法,此方案也可能适用),再测试是否重现浏览器崩溃问题 可选解决方案:升级搜狗输入法(如果想 卸载输入法 也可以) 前面有段时间chome ...

  7. jenkins安装详细教程

    一.jenkins简介 jenkins是一个开源的软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 1.持续的软件版本 ...

  8. python:过滤字符串中的字母数字特殊符号

    今天遇到的字符串处理的问题,记录一下方便使用 str1 = input('请输入一个字符:') #初始化字符.数字.空格.特殊字符的计数 lowercase = 0 uppercase = 0 num ...

  9. 【Python 20】BMR计算器4.0(异常处理)

    1.案例描述 基础代谢率(BMR):我们安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上. 计算公式: BMR(男) = (13.7*体重kg)+(5.0*身高cm)-(6. ...

  10. Ambari与Kerberos 集成

    Kerberos 介绍 Kerberos 是一个网络认证的框架协议,其设计的初衷便是通过密钥系统为 Client 和 Server 应用程序之间提供强大的认证服务.在使用 Kerberos 认证的集群 ...