常用的模運算

2021-09-27 08:32:53 字數 1298 閱讀 5190

對於正整數和整數 , ,定義如下運算:

取模運算: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,就是取計算結果的個位數,參...