一.
定义:给定一个正整数,若两个整数a和b满足差(a-b)可以被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。
二.
解:两个不同的整数a、b,被一个整数m相除时,得到相同的余数,那么我就可以称a、b同余; 因为a、b同余所以当他们相减时,余数就抵消掉了,剩下的那部分就是能被m整除的。
可以这么理解:
既定a,b等a=mq1+r1,b=mq2+r,a-b = m(q1-q2),在a-b = m(q1-q2) 即 m | (a-b) (a-b能被m整除) 成立时,就能说明a、b对于m同余,那么就可以表示:因为a-b = m(q1-q2),则a、b同余可以表示为: a≡b(mod m);
(a+b)%m=(a%m+b%m)%m;
a×b%m=((a%m)×(b%m))%m;
三.
同余性质:
1.反身性:a≡a (mod m)
2.对称性: 若a≡b(mod m),则b≡a(mod m)
3.传递性: 若a≡b(mod m),b≡c(mod m),则a≡c(mod m)
4.同余式相加:若a≡b(mod m),b≡c(mod m),则a ± c≡b ± d(mod m)
5.同余式相乘:若a≡b(mod m),b≡c(mod m),则ac≡bd(mod m)
6.线性运算:如果a≡b(mod m),c≡d(mod m),那么a ± c≡b ± d(mod m),且a * c≡b * d(mod m)
7. 除法:若ac ≡ bc (mod m) c≠0 则 a≡ b (mod m/gcd(c,m)) 其中gcd(c,m)表示c,m的最大公约数。特殊地 ,gcd(c,m)=1 则a ≡ b (mod m)
8.幂运算:如果a ≡ b (mod m),那么a^n ≡ b^n (mod m)
9.若a ≡ b (mod m),n|m,则 a ≡ b (mod n)
10.若a ≡ b (mod mi) (i=1,2…n) 则 a ≡ b (mod [m1,m2,…mn]) 其中[m1,m2,…mn]表示m1,m2,…mn的最小公倍数
四.
应用:
(1)高精度对旦净度取模:一个高精度数对一个数字取余,可以把这个高精度数看成各位数的权值与个位数乘积的和。
例如: 1234=((1×10+2)×10+3)×10+3
(2)快速幂取模,将幂拆解为多个底数的平方次的积,若指数為偶数,把指数除以2,并让底数的平方次取余,若指数为奇数,就把多出来的底数记录下来,并执行偶数次的操作。