四则运算
(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 * c) % p = ((a * c) % p + (b * c) % p) % p
重要定理
若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);
若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);
若a≡b (% p),c≡d (% p),
则 (a + c) ≡ (b + d) (%p),
(a - c) ≡ (b - d) (%p),
(a * c) ≡ (b * d) (%p),
(a / c) ≡ (b / d) (%p);
消除律
若ab≡ac (% p),则b≡c (% p),仅当a和p互质时成立
因为上式等价于a(b-c) ≡ 0 (% p)
即a(b-c)恰好被p整除,因为a和p互质,所以a中不包含p的因数,因此只能(b-c)恰好被p整除。
所以有(b-c) ≡ 0 (% p),b≡c (% p)。
取模和求余
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1.求 整数商: c = a / b c = a/b c=a/b
2.计算模或者余数: r = a − c ∗ b r = a - c*b r=a−c∗b
取余:c / java
计算c的值时,向0 方向舍入(fix())
c
=
9
/
−
5
=
−
9
/
5
=
−
1
c = 9 / -5 = -9 / 5 = -1
c=9/−5=−9/5=−1
则:
9
%
−
5
=
9
−
(
−
1
)
∗
(
−
5
)
=
4
9 \% -5 = 9 - (-1)*(-5) = 4
9%−5=9−(−1)∗(−5)=4;
−
9
%
5
=
−
9
−
(
−
1
)
∗
5
=
−
4
-9 \% 5 = -9-(-1)*5 = -4
−9%5=−9−(−1)∗5=−4;
取模:python
计算c的值时,向负无穷大方向舍入(floor())
c
=
9
/
−
5
=
−
9
/
5
=
−
2
c = 9 / -5 = -9 / 5 = -2
c=9/−5=−9/5=−2
则
9
%
−
5
=
−
1
9 \% -5 = -1
9%−5=−1;
−
9
%
5
=
1
-9 \% 5 = 1
−9%5=1;