對於正整數和整數 , ,定義如下運算:
取模運算:a % p(或a mod p),表示a除以p的餘數。
模p加法:(a + b) % p ,其結果是a+b算術和除以p的餘數,也就是說,(a+b) = kp +r,則(a + b) % p = r。
模p減法:(a-b) % p ,其結果是a-b算術差除以p的餘數。
模p乘法:(a * b) % p,其結果是 a * b算術乘法除以p的餘數。
同余式:正整數a,b對p取模,它們的餘數相同,記做 a ≡ b % p或者a ≡ b (mod p)。
n % p得到結果的正負由被除數n決定,與p無關。例如:7%4 = 3, -7%4 = -3, 7%-4 = 3, -7%-4 = -3。
(1)若p|(a-b),則a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)
(2)(a % p)=(b % p)意味a≡b (% p)
(3)對稱性:a≡b (% p)等價於b≡a (% p)
(4)傳遞性:若a≡b (% p)且b≡c (% p) ,則a≡c (% p) 模運算與基本四則運算有些相似,但是除法例外。其規則如下:
(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 (5)
((ab) % p * c)% p = (a * bc) % p (6)// (a%pb)%p=(ab)%p
交換律:
(a + b) % p = (b+a) % p (7)
(a * b) % p = (b * a) % p (8)
分配律:
((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p (9)
若a≡b (% p),則對於任意的c,都有(a + c) ≡ (b + c) (%p);(10)
若a≡b (% p),則對於任意的c,都有(a * c) ≡ (b * c) (%p);(11)
若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); (12)
23333
神奇的模運算
小學時,大家應該已經很熟悉 如何判斷乙個數能否被3或9整除 的問題。然而,為何乙個數的各位數的和能被3或9整除時,該數即可以被3或9整除呢?又為何個位數是偶數時,該數即為偶數呢?有沒有類似的簡單的方法來判斷乙個數能否被7,被11整除呢?模運算可以很好地給出問題的答案。什麼是模運算呢?學過離散數學基礎...
模運算性質
給定乙個正整數p,任意乙個整數n,一定存在等式 n kp r 其中 k r 是整數,且 0 r p,則稱 k 為 n 除以 p 的商,r 為 n 除以 p 的餘數。對於正整數 p 和整數 a,b,定義如下運算 取模運算 a p 或a mod p 表示a除以p的餘數。模p加法 其結果是a b算術和除以...
模運算 詳解
模運算是大數運算中的常用操作。如果乙個數太大,無法直接輸出,或者不需要直接輸出,可以把它取模後縮小數值在輸出。定義模運算為 a 除以 m 的餘數,記為 a mod m a m 取模的結果滿足 0 a mod m m 1,題目用給定的 m 限制計算結果的範圍。例如 m 10,就是取計算結果的個位數,參...