自然数求模定义:
如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = qd + r 且0 ≤ r < d。其中,q 被称为商,r 被称为余数
整数求模定义:
如果a 与d 是整数,d 非零,那么余数 r 满足这样的关系:a = qd + r , q 为整数,且0 ≤ |r| < |d|
加减乘:[默认a > b > 0,p >0,余数>0].这里我们讨论自然数求模,负数求模要分计算机语言。底层逻辑不同,余数可为正余数和负余数,这里以后讨论
1 (a + b) % p = (a % p + b % p) % p = (a % p + b) % p
2 (a - b) % p = (a % p - b % p) % p = (a - b%p) % p
注意,2 这个公式不完全适用!!!!。因为会出现a%p - b%p < 0,我们可以利用钟表算时间的思想
比如 现在时间23:00,求78小时前是几点?本质就是( 23-78)%24 = (23 + 24*3-78) = 17:00
所以改进为
=>2.1 (a - b) % p = (a % p - b % p +p) % p = (a - b%p ) % p
=>2.2 (a - b) % p = (a % p - b + np) % p, 备注【a%p -b + n*p >0】
3 (a * b) % p = (a % p * b % p) % p = (a % p * b ) % p
4 (a^b) % p = ((a % p)^b) % p
证: (a + b) % p = (a % p + b % p) % p
核心 a = x * p + k,则 a%p = k。 k < x < a,x为倍数。
解析:任何正整数a,都等于 任意数(比如p) 的倍数 + 余数 。余数 < p
根据上述结论,设a =xp+k,则a % p = k ;b = yp + j,则b % p = j , k < p且j <p
1 等号左边=> (a+b)%p == (xp + k +yp + j)%p == [ (x+y)*p + (k + j) ]%p = (k + j)%p
解析,因为xp,yp分别能被 p整除,所以[ (x+y)*p + (k + j) ]%p == (k+j)%p
2 等号右边=> (a%p + b%p)%p == (k+j)%p
=>得证相等,加减乘都是同样证明方法,不再一一列举。包括后面结合律分配率也是同样方法
结合率:
1 ((a+b) % p + c) % p = (a + (b+c) % p) % p
2 ((a*b) % p * c)% p = (a * (b*c) % p) % p
证 ((a+b) % p + c) % p = (a + (b+c) % p) % p
设a =xp+k,则a % p = K ;b = yp + J,则b%p = J;c = zp + L ,c%p = L
1 等号左边=>
((a+b) % p + c) % p = [ ( (x+y) * p + K + J ) % p + zp + L ] %p == [ ( K + J )%p + (zp + L) ]%p
根据求和公式逆用 [ ( K + J )%p + (zp + L) ]%p == (K + J + zp + L)%P => (K + J + L)%P
2 等号右边=>
(a + (b+c) % p) % p = [(xp + K) +( ( y+z)*p + J + L)%p ]%p == [(xp + K) + (J + L)%p ]%p
根据求和公式逆用[(xp + K) + (J + L)%p ]%p == [ xp + K + J + L]%p == [k + J + L]%p
=>得证相等,其它几个证明同理
分配率:
( (a+b)%p *c )%p = ( (ac)%p + (b*c)%p )%p
1 同余定理 m|a-b 等价于 a≡b(mod m) ;
推导过程:
m|a-b
含义为a-b 能被m整除,即 (a-b) mod m = 0
也是(a-b)/m = r ,即 a-b = m * r ,r是整数。
a≡b(mod m) 读作a与b对模m同余,
含义是 a mod m = b mod m;
如果满足a mod m = b mod m,那么也必定满足a = m*x + r, b = m*y + r, =>x,y,r均为整数
a b两数相减,推导出a-b = m*(x-y) ,即(a-b)/m = x-y,因为x-y是整数,所以a-b 能被m整除
也可推出 b = a + m * t,t为任意整数
2 若a≡b(mod m),c≡d(mod m),则a ± c≡b ± d(mod m)
若a≡b(mod m),b≡c(mod m),则ac≡bd(mod m)
根据1同余定理,a-b = x * m ; c-d = y * m; x,y是整数
(a-b)-(c-d) = (x-y) * m , 即 (a-c)-(b+d) = (x-y) * m ,即 m|(a-c)-(b-d)
将(a-c)(b-d)分别看成一个成体,同余定理=>(a-c)≡(b-d)(mod m)
(a-b) + (c-d) = (x + y)*m, 即m|(a+c)-(b+d) , 同余定理 =>(a+c)≡b+d(mod m)
重要定理:
若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)