- 取模与取余
取模与取余的唯一差别:
在求商时,取模向负无穷方向舍入,而取余向0方向舍入。
共同点:计算模的公式一样 r = a - c*b
注:各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。
以c语言为例:
4/3 = 1,4%3=1;
-4/3=-1. 4%3=-1;
- 取模的四则运算
可以应用于加减乘幂,不能应用于除。
(a + b) % p = (a % p + b % p) % p (1)
(a - b) % p = (a % p - b % p ) % p (2)
(a * b) % p = (a % p * b % p) % p (3)
a ^ b % p = ((a % p)^b) % p (4)
同样有交换律、结合律和分配律:
结合律:
((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