数论 - 取模运算及其性质
Posted wlw-x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论 - 取模运算及其性质相关的知识,希望对你有一定的参考价值。
在算法竞赛中经常会用到各式各样的取模运算,下面将常用的总结下来以便自己复习
什么是取模运算
在java和c/c++中
对于整型数a,b来说,取模运算:
1.求整数商: c = a/b;
2.计算模: a % b = a - c * b;
例子:
9 % 4 = 9 - (9 / 4) * 4 = 1
9 %-4 = 9 - (9 /-4) -4 = 1
-9 % 4 = -9 - (-9 / 4) 4 =-1
-9 %-4 = -9 - (-9 /-4) *-4 =-1
在python中
a % b = a - n b,其中n为不超过a / b的最大整数
1.求商:c = a / b
2.取 n:n为不超过c的最大整数即[c]
3.计算模:a % b = a - nb
取模运算的性质
模运算与基本四则运算有些相似,但是除法例外。其规则如下:
(a + b) % p = (a % p + b % p) % p
(a - b) % p = (a % p - b % p) % p
(a * b) % p = (a % p * b % p) % p
a ^ b % p = ((a % p)^b) % p
结合律:
((a+b) % p + c) % p = (a + (b+c) % p) % p
((ab) % p c)% p = (a * (bc) % p) % p
交换律:
(a + b) % p = (b+a) % p
(a b) % p = (b * a) % p
分配律:
(a+b) % p = ( a % p + b % p ) % p
((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p
tips
当我们只关注某个整数的后k位时我们可以利用取模运算
例如:
long long x = 12345678911;
我们只关注这个数的后4位可以利用temp = x % 10^4
利用这个temp代替x与其他数字的四则运算
以上是关于数论 - 取模运算及其性质的主要内容,如果未能解决你的问题,请参考以下文章