忘了是不是原創了,誰發現了位址請告知。
本文以c++
語言為載體,對基本的模運算應用進行了分析和程式設計,以理論和實際相結合的方法向大家介紹模運算的基本應用。。
基本理論
基本概念:
給定乙個正整數
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) % 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的餘數。
說明:1.
同余式:正整數a,
b對p取模,它們的餘數相同,記做
a ≡ b % p
或者a ≡ b (mod p)。
2. 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
) ((a*b) % p * c)% p = (a * (b*c) % p) % p (6
) 交換率:
(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)
若a≡b (% p)
,則對於任意的
c,都有
ac≡ bc (%p)
; (13)
基本應用 1.
判別奇偶數
2.判別素數
3. 最大公約數
4.模冪運算
模運算性質
給定乙個正整數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算術和除以...
取模運算性質
給定乙個正整數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算術和除以...
模運算的基本性質
給定乙個正整數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 p 其結果是a b算術和除以p的餘數,也就是說,...