模運算的加法,減法,乘法和四則運算類似
a * b % c = (a%c * b%c)%c
(a + b)%c = (a%c + b%c)%c
(a - b)%c =(a%c - b%c)%c
但是除法並非如此,因為很大的可能會有小數或者是分數在除法的運算中出現,這樣子的話,結果就是不對的。
舉乙個例子:5/3
5/35/
3 % 2=1.6666666666666666666666666666667,但是(5%2/3%2)%2=1。
我們根據費馬小定理可以得出:如果p為質數,且a為正整數,那麼ap−
1=
1a^=1
ap−1=1
。我們設x是a的逆元
那麼:a∗x
≡1(m
odp)
a*x\equiv 1 \pmod p
a∗x≡1(
modp)a∗
x≡ap
−1(m
odp)
a*x\equiv a^ \pmod p
a∗x≡ap
−1(m
odp)
x ≡a
p−2(
modp
)x \equiv a^ \pmod p
x≡ap−2
(mod
p)此時,就可以直接用快速冪求出逆元啦。
我們還有乙個o(n)遞推求逆元的方法:
i nv
[i]=
(p−p
/i)∗
inv[
p%i]
inv[i]=(p-p/i)*inv[p\% i]
inv[i]
=(p−
p/i)
∗inv
[p%i
]
和與餘數的和同餘理解 模和同餘定理
一 什麼是餘數 在整數的除法中,只有能整除與不能整除兩種情況。當不能整除時,就產生餘數。我們在讀小學二年級時,已經學了帶餘數的出發了,我們來溫習一下。通過做了這麼多年除法,我們可以理解到,餘數是指整數除法中被除數未被除盡部分,且餘數的取值範圍為0到除數之間 不包括除數 的整數,也就是說餘數一定比除數...
取模運算性質 同餘運算和費馬小定理的證明
sicp 一書 1.2.6 小節提到費馬檢查和費馬小定理,但沒有小定理的證明。此文補充這個證明。以數學符號來描述,假如 同餘等價符號是三個橫線的等號。另外數學符號a mod n是乙個整體,表示 a 對 n 求模 取餘數 沒有像函式呼叫那樣記成mod a,n 同餘有些很好的性質。有加法原理和乘法原理。...
對nginx和apache的全面了解
1 nginx相對於apache的優點 輕量級,同樣是web 服務,比apache 占用更少的記憶體及資源 抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能 高度模組化的設計,編寫模組相對簡單 社群活躍,各種高效能模組出品迅速...