同余 模算术 中国剩余定理

相关知识点:

1、a≡b(modc),a,b关于模c同余  ,即a modc=b mod c , 等价于a%c=b

2、如果a,b互质(a,b)=1,则可得a关于模b的逆 ax≡1(modb)

3、关于余数的定理:

定理1 :如果被除数加上(或减去)除数的整数倍,除数不变,则余数不变。

定理2 :如果被除数扩大(或缩小)几倍,除数不变,则余数也扩大(或缩小)同样的倍数。

定理3: 如果整数a除以自然数b(b≠0),余数r仍不小于b,则r除以b的余数等于a除以b所得余数。(余数和被除数关于除数同余)

4.中国剩余定理:

设m1,m2,...,mk是两两互素的正整数,对于任意的正整数a1,a2,a3,..,ak

同余方程组:

x≡a1 (mod m1)

x≡a2 (mod m2)

...

x≡ak (mod mk)

必有解,

且解可写为

x≡M1P1a1+M2P2a2+....MkPkak  (mod m)

其中

M=m1m2m3....mk

Mi=M/mi,(1<=i<=k)

证明:令Mi=M/mi ,则Mi和mi互质,则(Mi,mi)=1,即 MiPi≡1(mod mi),
                                        ——模逆

等价于MiPi %mi=1,要使 MiPi%mi=ai,只要将被除数乘以a1(由定理2得

易知同余方程组的解为x≡M1P1a1+M2P2a2+....MkPkak  (mod m)

算法模板:

int m[maxn],a[maxn];
void exgcd(int a,int b,int &d,int &x,int &y)
{
    if(!b) d=a,x=1,y=0;
    else exgcd(b,a%b,d,y,x),y-=x*(a/b);
}
intChina(int r)
{
    int M,d,x0,y0,ans=0;
    for(int i=1;i<=r;i++){
        M*=m[i];
    }
    for(int i=1;i<=r;i++){
        int Mi=M/m[i];
        exgcd(Mi,m[i],d,x0,y0);
        ans=(ans+Mi*x0*a[i])%M;
    }
    if(ans<0) ans+=M;
    return ans;
}

———————————————————————分割线———————————————————————————

以下来自转载,有助于理解中国剩余定理的证明(拿着学长的书慢慢啃数论吧。。。)

公元前后的《孙子算经》中有“物不知数”问题:“今有物不知其数,三三数之余二 ,五五数之余三 ,七七数之余二,问物几何?”答为“23”。 --------这个就是传说中的“中国剩余定理”。

其实题目的意思就是,x%3=2,x%5=3,x%7=2;问x最小是多少?

解法:

1.首先找到3,5,7,的三个“关键数字”,即[5,7]=35;[3,7]=21;[3,5]=15

2.让35a%3=1,a=2;  让21b%5=1,b=1;  让15c%7=1,c=1(我们这里要让余数为1,是为了要求余数2的话,只要乘以2就可以,要求余数为3的话,只要乘以3就可以了,……)

3.所以 然后,35*2*2=140    21*1*3=63  15*1*2=30

4.  Then 140+63+30=233  ,因为233>3*5*7  , 所以233- 105*2=23

上几个百度上的例题(我们会发现给出的除数都是亮亮互质的,显然……):

例1:一个数被3除余1,被4除余2,被5除余4,这个数最小是几?

题中3、4、5三个数两两互质。则〔4,5〕=20;〔3,5〕=15;〔3,4〕=12;〔3,4,5〕=60。为了使20被3除余1,用20×2=40;使15被4除余1,用15×3=45;使12被5除余1,用12×3=36。然后,40×1+45×2+36×4=274,因为,274>60,所以,274-60×4=34,就是所求的数。

例2:一个数被3除余2,被7除余4,被8除余5,这个数最小是几?

题中3、7、8三个数两两互质。则〔7,8〕=56;〔3,8〕=24;〔3,7〕=21;〔3,7,8〕=168。为了使56被3除余1,用56×2=112;使24被7除余1,用24×5=120。使21被8除余1,用21×5=105;然后,112×2+120×4+105×5=1229,因为,1229>168,所以,1229-168×7=53,就是所求的数。

例3:一个数除以5余4,除以8余3,除以11余2,求满足条件的最小的自然数。

题中5、8、11三个数两两互质。则〔8,11〕=88;〔5,11〕=55;〔5,8〕=40;〔5,8,11〕=440。为了使88被5除余1,用88×2=176;使55被8除余1,用55×7=385;使40被11除余1,用40×8=320。然后,176×4+385×3+320×2=2499,因为,2499>440,所以,2499-440×5=299,就是所求的数。

同余 模算术 中国剩余定理,布布扣,bubuko.com

时间: 2024-10-06 07:07:02

同余 模算术 中国剩余定理的相关文章

同余、中国剩余定理

同余:a≡b (mod m),表示a % m==b % m 同余式的运算法则: -------------------------------------------------------------------------------------------------------------- 中国剩余定理出自<孙子算经>中的一个问题: 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?这道题实际上就是解这么一个同余方程组:x≡2 (mod 3)x≡3 (mod 5)x≡

hihocode 九十七周 中国剩余定理

题目1 : 数论六·模线性方程组 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:今天我听到一个挺有意思的故事! 小Hi:什么故事啊? 小Ho:说秦末,刘邦的将军韩信带领1500名士兵经历了一场战斗,战死四百余人.韩信为了清点人数让士兵站成三人一排,多出来两人:站成五人一排,多出来四人:站成七人一排,多出来六人.韩信立刻就知道了剩余人数为1049人. 小Hi:韩信点兵嘛,这个故事很有名的. 小Ho:我觉得这里面一定有什么巧妙的计算方法!不然韩信不可能这么快计

acm数论之旅--中国剩余定理

中国剩余定理,又名孙子定理o(*≧▽≦)ツ 能求解什么问题呢? 问题: 一堆物品 3个3个分剩2个 5个5个分剩3个 7个7个分剩2个 问这个物品有多少个 解这题,我们需要构造一个答案 我们需要构造这个答案 5*7*inv(5*7,  3) % 3  =  1 3*7*inv(3*7,  5) % 5  =  1 3*5*inv(3*5,  7) % 7  =  1 这3个式子对不对,别告诉我逆元你忘了(*′?`*),忘了的人请翻阅前几章复习 然后两边同乘你需要的数 2 * 5*7*inv(5*

【信息安全数学基础】中国剩余定理

算法原理: 设正整数 ????,????,?,???? 两两互素,对任意整数 ????,????,?,????,一次同余方程组 ?? ≡ ???? (?????? ????) ?? ≡ ???? (?????? ????) ? ?? ≡ ???? (?????? ????) 在模??意义下有唯一解,该解可表示为 ?? ≡ ????(????^-1)???? +????(????^−??)???? +?+????(????^−??)????( ?????? ??) 其中?? = ????????

【bzoj3782】上学路线 dp+容斥原理+Lucas定理+中国剩余定理

题目描述 小C所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M).小C家住在西南角,学校在东北角.现在有T个路口进行施工,小C不能通过这些路口.小C喜欢走最短的路径到达目的地,因此他每天上学时都只会向东或北行走:而小C又喜欢走不同的路径,因此他问你按照他走最短路径的规则,他可以选择的不同的上学路线有多少条.由于答案可能很大,所以小C只需要让你求出路径数mod P的值. 输入 第一行,四个整数N.M.T.P. 接下来的T行,每行两个整数,表示施工的路口的坐标. 输出 一

转载----POJ 1006 中国剩余定理

本文为转载,源地址:   http://blog.csdn.net/dongfengkuayue/article/details/6461298 POJ 1006   Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 78980   Accepted: 23740 Description Some people believe that there are three cycles in a perso

POJ 1006:Biorhythms 中国剩余定理

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 121194   Accepted: 38157 Description Some people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical,

数论总结之 中国剩余定理

背景 我!终于学会孙子定理了!!!!!!!!!!!!!!!!!!!!!!!!!!! 好难啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! QAQ 中国剩余定理 中国剩余定理又名孙子定理. 在了解中国剩余定理之前,我先放出之前终止了我很长时间的懵逼的一段话. 中国剩余定理介绍 在<孙子算经>中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为

数论E - Biorhythms(中国剩余定理,一水)

E - Biorhythms Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status Description Some people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the