数论 - 取模运算及其性质

数论 - 取模运算及其性质

在算法竞赛中经常会用到各式各样的取模运算,下面将常用的总结下来以便自己复习

什么是取模运算

在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与其他数字的四则运算

相关推荐

2026世界杯倒计时:阿兹特克球场能否按期完工?
mobile365体育投注网站

2026世界杯倒计时:阿兹特克球场能否按期完工?

🌍 10-29 👁️ 6363
亚索新皮肤保底多少
mobile365体育投注网站

亚索新皮肤保底多少

🌍 12-14 👁️ 5765
模特步为什么叫“猫步”而不叫“狗步”
365bet不能提现

模特步为什么叫“猫步”而不叫“狗步”

🌍 07-12 👁️ 9084