本文章仅用于笔记。部分知识点来源于网络,授权请联系作者([email protected])。
直接抛出自己的理解:
2个不同的整数a、b,被一个整数m相除时,得到相同的余数,那么我就可以称a、b同余。
因为a、b同余所以当他们相减时,余数就抵消掉了,剩下的那部分就是能被m整除的。
可以这么理解:
a=m*q1+r1,b=m*q2+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)
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),c≡d(mod m),则a c≡b d(mod m);
5.同余式相乘:若a≡b(mod m),c≡d(mod m),则ac≡bd(mod m)。
证明:
∵a≡b(mod m)∴m|(a-b) 同理m|(b-c),
∴m|[(a-b)+(b-c)]∴m|(a-c).
故a≡c(mod m).
6.线性运算:如果a ≡ b (mod m),c ≡ d (mod m),那么
(1)a ± c ≡ b ± d (mod m);
(2)a * c ≡ b * d (mod m)。
证明:
(1)∵a≡b(mod m),
∴m|(a-b)
同理 m|(c-d)
∴m|[(a-b)±(c-d)]
∴m|[(a±c)-(b±d)]
∴a ± c ≡ b ± d (mod m)
(2)∵ac-bd=ac-bc+bc-bd=c(a-b)+b(c-d)
又 m|(a-b) , m|(c-d)
∴m|(ac-bd)
∴a * c ≡ b * d (mod m)
7.除法:若 ,则 ,其中gcd(c,m)表示c和m的最大公约数,
特殊地, 则 ;
8.幂运算:如果 ,那么 ;
9.若 ,n=m,则 ;
10.若 ,(i=1,2...n) 则 ,其中 表示m1,m2,...mn的最小公倍数。
方法一:
5^101 mod 3
可以通过同余的性质换算成
因为 5 mod 3 = 2
所以 2 与 5 是同余,表示成 5^101 mod 3 ≡ 2^101 mod 3
又因为 101 mod 3 = 2
所以 101 与 3 是同余,表示成 2^101 mod 3 ≡ 2^2 mod 3
(到这里可能大家都不理解,简单解释就是在底数相同时,指数变化 后在 去 mod 3,其实是个循环)
5^1 mod 3 = 2
5^2 mod 3 = 1
5^3 mod 3 = 2
5^4 mod 3 = 1
…………
所以在底数相同时可以对指数进行同余
所以上面这个问题 可以表示成 5^101 mod 3 ≡ 2^2 mod 3 = 1
方法二:
5^101 mod 3
因为 5 mod 3 = 2
所以 2 与 5 是同余
因为 5 与 5 是同余
通过同余式相乘( 若a≡b(mod m),c≡d(mod m),则ac≡bd(mod m) )
2 ≡ 5 (mod 3),5 ≡ 5 (mod 3)
可以表示成
2 * 5 mod 3 ≡ 5 * 5 mod 3 = 1
1 * 5 mod 3 ≡ 2 * 5 * 5 mod 3 = 2
2 * 5 mod 3 ≡ 1 * 5 * 5 mod 3 = 1
…………
依次类推所以可以用程序循环表示:
int a = 5, pow = 101, m = 3, result = 1;
for(int i=1; i<=pow; i++){
result *= a;
result %= m;
}
所以这也是通过同余换算得到的。
1、同余定理加减法表示:
(a + b) mod m = (a mod m + b mod m) mod m
(a * b) mod m = ((a mod m) * (b mod m)) mod m
2、高精度取模:
12345 = ( ( (1 * 10 +2 ) * 10 +3 ) * 10 + 4 ) * 10 + 5)
这就可以用同余加减法表示了
本文章仅用于笔记。部分知识点来源于网络,授权请联系作者([email protected])。
求关注一波,谢谢!!!