中国剩余定理&扩展中国剩余定理

NOIP考完回机房填坑


◌ 中国剩余定理

处理一类相较扩展中国剩余定理更特殊的问题:

在这里要求 对于任意i,j(i≠j),gcd(mi,mj)=1 (就是互素)

不互素的话就只能用扩展算法了……这也是中国剩余定理与其扩展算法的主要区别。

另外 中国剩余定理 和 扩展中国剩余定理 似乎没有什么关系,除了解决的问题比较相似,所以我就分开讲了。

▫算法

举一个比较常用的例子(出自《九章算术》),求正整数x满足:

先计算 3,5,7 的最小公倍数为 105

再计算出所谓的基础数

mod 3: 105/3=35 >> 35 mod 3 = 2 (因为35模3本来就余2,就不需要操作) >> 基础数是35

mod 5: 105/5=21 >> 21 mod 5 = 1 (1*3=3,所以需要乘3)>> 21*3 mod 5 = 3 >> 基础数为 21*3=63

mod 7: 105/7=15 >> 15 mod 7 = 1 (1*2=2,所以需要乘2)>> 15*2 mod 7 = 2 >> 基础数为 15*2=30

这3个基础数加起来得到 sum=35+63+30=128

然后模 3,5,7 的最小公倍数就得到答案 ans=128 mod 105=23

▫证明

(背的结论……记不住具体证法,简单证明一下正确性)

可以知道的是:对于带余除法 "a / b = c ... d",存在 "(ax) / b = (cx+dx/b) ... (dx mod b)",自己可以举几个例子感性理解一下。

对于集合(元素都互质)A={ a1,a2...an } 的最小公倍数lcm,lcm/ai 一定是A中除ai以外的元素的倍数。如果 lcm/ai mod ai = ki ,而且题目是 求出的数mod ai = ri ,如果问题有解,那么一定存在整数 p ,使得(ki * p) mod ai = r要使余数乘p,根据前面的思路,我们可以将被除数也乘上 p 。这样被除数就变成了 (lcm/ai*p) ,它一定被 集合A 中除 ai 的所有元素整除,并且它模ai的余数为ri。这时候我们称这个被除数为ai的“基础数”

另外一个性质:如果 x1,x2,...,xn 被 a 整除,而 xn+1 mod a = k ,那么 (x1+x2+...+xn+1) mod a = k。

那么我们现在将 a1~an 的基础数都加起来得到 sum,一定满足 sum mod ai = ri ,即已经符合题目要求。但是如果我们要求最小的数,我们可以取模 lcm ,因为 lcm mod ai = 0,所有模一个lcm不会影响到题目要求。


◌ 扩展中国剩余定理

解决的问题很相似,只是没有互质的要求。但是依据的算法就完全不一样了。

▫ 证明

个人觉得比中国剩余定理好理解,但是建议先弄懂扩展欧几里得

先只考虑2个元素,即求x:

得到一个奇怪的等式——

  

再转换一下:

  

令 

等式两边同时除以 gcd,得到 :

  

然后将它转换为模运算的形式:

  

然后因为模运算不能作除法,我们定义:

  

接下来就可以转换模运算了:

  

再转回普通运算:

  

根据一开始的:

   

可以得到:

  

代回去,再移下项:

  

  

化简一下式子:

  

所以就会发现:

  

OK……证毕!


The End

Thanks for reading!

学习笔记 - 中国剩余定理&扩展中国剩余定理的更多相关文章

  1. [洛谷P4777] [模板] 扩展中国剩余定理

    扩展中国剩余定理,EXCRT. 题目传送门 重温一下中国剩余定理. 中国剩余定理常被用来解线性同余方程组: x≡a[1] (mod m[1]) x≡a[2] (mod m[2]) ...... x≡a ...

  2. P4774-屠龙勇士-扩展中国剩余定理

    屠龙勇士 很久很久以前,巨龙突然出现,带来了灾难带走公主又消失不见.王国十分危险,世间谁最勇敢,一位英雄出现-- 学习于该大佬博客 那么你就是这位英雄,不过不同的是,你面对的是一群巨龙,虽然巨龙都不会 ...

  3. 【学习笔记-中国剩余定理】POJ1006 Biorhythms

    Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 139500   Accepted: 44772 Des ...

  4. 2019牛客暑期多校训练营(第十场)Han Xin and His Troops——扩展中国剩余定理

    题意 求解 $n$ 个模方程 $x \equiv a (mod \ b)$,不保证模数互素($1 \leq n \leq 100$,$0 \leq b < a< 10^5$). 分析 套扩 ...

  5. LOJ 2721 「NOI2018」屠龙勇士——扩展中国剩余定理

    题目:https://loj.ac/problem/2721 1.注意别一输入 p[ i ] 就 a[ i ] %= p[ i ] ,因为在 multiset 里找的时候还需要真实值. 2.注意用 m ...

  6. poj2891 扩展中国剩余定理

    求a1x1+r1=y...anxn+rn=y,crt合并 //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optim ...

  7. 2019ICPC徐州网络赛 A.Who is better?——斐波那契博弈&&扩展中国剩余定理

    题意 有一堆石子,两个顶尖聪明的人玩游戏,先取者可以取走任意多个,但不能全取完,以后每人取的石子数不能超过上个人的两倍.石子的个数是通过模方程组给出的. 题目链接 分析 斐波那契博弈有结论:当且仅当石 ...

  8. Wannafly Camp 2020 Day 3I N门问题 - 概率论,扩展中国剩余定理

    有一个猜奖者和一个主持人,一共有 \(n\) 扇门,只有一扇门后面有奖,主持人事先知道哪扇门后有奖,而猜奖者不知道.每一轮,猜奖者选择它认为的有奖概率最大(如果有多个最大,随机选一个)的一扇门,主持人 ...

  9. (伪)再扩展中国剩余定理(洛谷P4774 [NOI2018]屠龙勇士)(中国剩余定理,扩展欧几里德,multiset)

    前言 我们熟知的中国剩余定理,在使用条件上其实是很苛刻的,要求模线性方程组\(x\equiv c(\mod m)\)的模数两两互质. 于是就有了扩展中国剩余定理,其实现方法大概是通过扩展欧几里德把两个 ...

随机推荐

  1. 多尺度几何分析(Ridgelet、Curvelet、Contourlet、Bandelet、Wedgelet、Beamlet)

    稀疏基的讨论已经持续了近一个月了,这次讨论多尺度几何分析.但由于下面讨论的这些变换主要面向图像,而本人现在主要关注于一维信号处理,所以就不对这些变换深入讨论了,这里仅从众参考文献中摘抄整理一些相关内容 ...

  2. vs2010开发activex(MFC)控件/ie插件(二):js传参数

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50802075  js传参数给activex控件. 过程为:js变量通过activex类的属 ...

  3. Python爬虫教程-22-lxml-etree和xpath配合使用

    Python爬虫教程-22-lxml-etree和xpath配合使用 lxml:python 的HTML/XML的解析器 官网文档:https://lxml.de/ 使用前,需要安装安 lxml 包 ...

  4. 【Anaconda】windows安装报错:UnicodeDecodeError解决方法

    UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 11: invalid continuation byte 解决 ...

  5. WebView设置透明和设置背景图片的方法

    http://blog.csdn.net/Vincent20111024/article/details/8478219 1. WebView若要设置背景图,直接设置web .setBackgroun ...

  6. python 案例一(电话铺)

    经过自己努力,做了一个简单的电话铺的录入和查询小程序,比较简单,喜欢的朋友可以练练手. 题目: 创建你自己的命令行 地址簿 程序.在这个程序中,你可以添加.修改.删除和搜索你的联系人(朋友.家人和同事 ...

  7. Linux ->> UBuntu 14.04 LTE下安装Hadoop 1.2.1(伪分布模式)

    Hadoop的运行模式可分为单机模式.伪分布模式和分布模式. 首先无论哪种模式都需要安装JDK的,这一步之前的随笔Ubuntu 14.04 LTE下安装JDK 1.8中已经做了.这里就不多说了. 其次 ...

  8. Linux->Jdk1.8安装

    一.下载jdk 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.解 ...

  9. 用CIFilter生成QRCode二维码图片

    用CIFilter生成QRCode二维码图片 CIFilter不仅仅可以用来做滤镜,它还可以用来生成二维码. CIFilterEffect.h + CIFilterEffect.m // // CIF ...

  10. February 15 2017 Week 7 Wednesday

    Youth is not a time of life, it is a state of mind. 青春不是一段年华,而是一种心境. Likewise, maturity is not a tim ...