求解同余方程组:
{ x ≡ r 1 ( m o d m 1 ) x ≡ r 2 ( m o d m 2 ) ⋯ x ≡ r n ( m o d m n ) \left\{\begin{matrix} x\equiv r_1 \pmod {m_1}\\ x\equiv r_2 \pmod {m_2}\\ \cdots\\ x\equiv r_n \pmod {m_n}\\ \end{matrix}\right. ⎩⎪⎪⎨⎪⎪⎧​x≡r1​(modm1​)x≡r2​(modm2​)⋯x≡rn​(modmn​)​


①中国剩余定理

当 m 1 , m 2 , ⋯   , m n m_1,m_2,\cdots,m_n m1​,m2​,⋯,mn​互质时,可用中国剩余定理解 x x x。

设 M M M为 m 1 , m 2 , ⋯   , m n m_1,m_2,\cdots,m_n m1​,m2​,⋯,mn​的最小公倍数(LCM),由于各项互质,则有

M = ∏ i = 1 n m i M=\displaystyle\prod^n_{i=1}m_i M=i=1∏n​mi​

对于每一个同余方程,设一个 t i t_i ti​,为同余方程 M m i t i ≡ 1 ( m o d m i ) \frac{M}{m_i}t_i\equiv 1\pmod {m_i} mi​M​ti​≡1(modmi​)的最小非负整数解

则可解得同余方程组:

  • 特解: x = ∑ i = 1 n r i M m i t i x=\displaystyle\sum^n_{i=1}r_i\frac{M}{m_i}t_i x=i=1∑n​ri​mi​M​ti​
  • 通解: X = x + k M          ( k ∈ Z ) X=x+kM\;\;\;\;(k\in Z) X=x+kM(k∈Z)
  • 最小非负整数解: x m i n = ( x m o d    M + M ) m o d    M x_{min}=(x\mod M+M)\mod M xmin​=(xmodM+M)modM
模板:
void exgcd(LL a,LL b,LL &d,LL &x,LL &y)    //拓展欧几里得 解单个同余方程
{if(b==0){x=1;y=0;d=a;}else{exgcd(b,a%b,d,y,x);y-=x*(a/b);}
}
LL r[maxn],m[maxn];
LL CRT()
{LL M=1,res=0;for(int i=1;i<=n;i++)M*=m[i];       //最小公倍数LCMLL a,b,d,x,y;for(int i=1;i<=n;i++){a=M/m[i],b=m[i];exgcd(a,b,d,x,y);    //解同余方程:M/m[i] * t ≡ 1 (mod m[i])//由于M/m[i]和m[i]互质,gcd恰为 1,所以一定有解x=(x%b+b)%b;         //最小非负整数解res=(res+r[i]*(M/m[i])*x)%M;   //加到特解当中}return res;
}

②拓展中国剩余定理

当 m 1 , m 2 , ⋯ &ThinSpace; , m n m_1,m_2,\cdots,m_n m1​,m2​,⋯,mn​不一定互质时,需用拓展中国剩余定理解 x x x。

设 M k M_k Mk​ 为 m 1 , m 2 , ⋯ &ThinSpace; , m k m_1,m_2,\cdots,m_k m1​,m2​,⋯,mk​(即前 k k k个 m m m)的 最小公倍数(LCM)前 k k k个方程组的一个特解为 x k x_k xk​

对于 第 k k k个同余方程,设一个 t t t,为同余方程 x k − 1 + t ∗ M k − 1 ≡ r k ( m o d m k ) x_{k-1}+t*M_{k-1}\equiv r_k\pmod {m_k} xk−1​+t∗Mk−1​≡rk​(modmk​) 的最小非负整数解

则有 x k = x k − 1 + t ∗ M k − 1 x_k=x_{k-1}+t*M_{k-1} xk​=xk−1​+t∗Mk−1​。

递推可解得同余方程组:

  • 特解: x n x_n xn​
  • 通解: X = x n + k M n &ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace; ( k ∈ Z ) X=x_n+kM_n\;\;\;\;(k\in Z) X=xn​+kMn​(k∈Z)
  • 最小非负整数解: x m i n = ( x n m o d &ThinSpace;&ThinSpace; M n + M n ) m o d &ThinSpace;&ThinSpace; M n x_{min}=(x_n\mod M_n+M_n)\mod M_n xmin​=(xn​modMn​+Mn​)modMn​
模板:
void exgcd(LL a,LL b,LL &d,LL &x,LL &y)
{if(b==0){x=1;y=0;d=a;}else{exgcd(b,a%b,d,y,x);y-=x*(a/b);}
}
LL r[maxn],m[maxn];
LL EXCRT()
{LL M=m[1],res=r[1];LL a,b,c,d,x,y,t;for(int i=2;i<=n;i++){                  //c转为正a=M,b=m[i],c=((r[i]-res)%m[i]+m[i])%m[i];exgcd(a,b,d,x,y);   //求解同余方程:t*M ≡ r[i]-x (mod m[i])if(c%d!=0)return -1;      //无解t=b/d;x=x*c/d;x=(x%t+t)%t;res+=x*M;  //更新xM*=t;      //更新LCM:M = M*m[i]/gcd(M,m[i])res=(res%M+M)%M;}return res;
}

中国剩余定理 及 拓展中国剩余定理模板相关推荐

  1. 中国剩余定理学习 拓展中国剩余定理

    中国剩余定理学习 && 拓展中国剩余定理 中国剩余定理: 拓展中国剩余定理: 中国剩余定理: 仅供自己复习时查看一下大佬笔记,详细学习过程在大佬的博客. 学习连接:https://ww ...

  2. 学习拓展中国剩余定理小结

    前言 话说中国剩余定理好早就会了,但是一直木有接触过拓展的. 只知道它是个什么东东. 最近似乎需要它了,稍微学了学,似乎还挺简单的. 小结一下~ 简介 中国剩余定理我们都懂吧? 而拓展则是把它后面的模 ...

  3. 数论-中国剩余定理(crt) 与拓展中国剩余定理(excrt)

    中国剩余定理(crt) [用途] 求方程组中最小的非负整数解X X ≡ { a 1 ( m o d m 1 ) a 2 ( m o d m 2 ) . . . a n ( m o d m n ) X\ ...

  4. android算命大全,善奇命理(善奇命理网我的测算)V1.5.4 安卓免费版

    善奇命理(善奇命理网我的测算)是一个集成了许多算命测试功能的软件.无论是中国传统的算命.释梦还是西方的塔罗牌,此款应用都是可用的.测算就来善奇命理(善奇命理网我的测算)软件吧. 软件介绍 善奇命理(善 ...

  5. 中国剩余定理及其拓展

    中国剩余定理 实质就是解nnn次互质的方程,然后分别乘以他们的取模剩余量,然后相加得到答案,这里就不展开叙述. typedef long long ll; const int N = 1e3 + 10 ...

  6. ACM数论----中国剩余定理与拓展中国剩余定理

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

  7. 【原创】 中国剩余定理 和 拓展中国剩余定理

    孙子 Preface 数论学习Part 7. 每天进步一点点,退役不会太丢脸. 联赛只剩十五天,隔靴搔痒智何添? 剩余定理四天一篇,动归图论又几何,数据结构似云烟. 莫再等闲,莫忘时间. CRT 我们 ...

  8. [数论]-----中国剩余定理(扩展中国剩余定理)

    中国剩余定理 中国剩余定理(CRT)用于求形如: { x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) ⋯ ⋯ x ≡ a k ( m o d m k ) \be ...

  9. 中国剩余定理模版【中国剩余定理】

    /*问题:求解 n个方程:x=a[i](mod m[i]) (0<=i<n) 的x类型:中国剩余定理吐槽:这个模版要求m[i]之间两两互质啊QAQ */#include<cstdio ...

最新文章

  1. vue连线 插件_【Vue CLI】手把手教你撸插件
  2. 测试驱动开发是否是一种强迫症?
  3. 每日一皮:曾经的你是不是也这般天真?
  4. 【深度学习】医学图像分割多标签损失函数和极坐标变换
  5. 前端学习(3344):设计模式之工厂模式1
  6. 数禾云上数据湖最佳实践
  7. 2020 年,云游戏将爆发?各大科技公司云游戏布局大曝光!
  8. 白盒测试方法_软件测试的种类:白盒测试和黑盒测试
  9. PhpStorm中如何使用Xdebug工具,入门级操作方法
  10. MSDN下载的win7 32位原版镜像无法安装vmtools和提示安装程序无法自动安装Virtual Machine Communication Interface(VMCI)驱动程序
  11. WinRAR注册+去广告教程
  12. matlab 双音多频 接收端检测到的号码,实验一数字信号处理在双音多频拨号系统中的应用.doc...
  13. C# EF The instance of entity type ‘EqInfo‘ cannot be tracked because another instance with the
  14. stata两种方法制作限制立方条图
  15. Printing 1 to 1000 without loop or conditionals
  16. PointNetGPD 代码复现,环境配置,结果展示
  17. GB、GB/T等含义
  18. React生命周期 - 前端
  19. 屏幕下雪特效的jQuery实现
  20. 【Redis】面试题总结

热门文章

  1. Python添加png图片出现的问题和解决
  2. 巨头押注医疗 | 论XR与医疗的不解之缘
  3. 增效降本开源节流,2022年技术趋势前瞻(异步编程/容器技术)
  4. 使用Macos进行 Fugu14 Uncover A12-14 ios越狱 版本14.3-14.5.1
  5. Spring boot集成axis2开发webservice 服务
  6. 仿真必修课:计算电磁学入门(附件参考文献与笔记)
  7. 套料软件XSuperNEST产品及成功因素介绍
  8. Dx10和Dx9的一些区别
  9. 关于虚拟现实(VR)内容开发综述
  10. 【初识C++】C++、主人和狗 - 小区养狗信息管理