定义:
对于任意实数x、y都有:
,
其中是向下取整的意思在c语言中可以使用floor函数来达到此目的;
floor函数用法;
模的运算法则;
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)%p
4.%p=((a%p)^b)%p
(除法例外)
模运算满足结合律、交换律、分配率,具体如下:
A. 结合律
((a+b)%p+c)%p=(a+(b+c)%p)%p
((a*b)%p * c)%p= (a * (b*c)%p)%p
B. 交换律
(a+b)%p=(b+a)%p
(a*b)%p=(b*a)%p
C. 分配率
(a+b)%p=(a%p+b%p)%p
((a+b)%p*c)%p = ( (a*c)%p + (b*c)%p )%p
其中的证明过程:
要证明 (a+b)%p=(a%p+b%p)%p,我们需要先证明 a%p+b%p 的值在模 p 的意义下等于 a+b 的值在模 p 的意义下。
设 a mod p = x,b mod p = y,
那么: a = x + kp b = y + lp 其中 k 和 l 是任意整数
所以,a+b = x+kp + y+lp = (x+y) + (k+l)p
所以,(a+b) mod p = (x+y) mod p
而 a%p + b%p = x + y
所以在模 p 的意义下,(a+b)%p = (a%p+b%p)%p