模運算 詳解

2021-09-29 03:00:32 字數 585 閱讀 4552

模運算是大數運算中的常用操作。如果乙個數太大,無法直接輸出,或者不需要直接輸出,可以把它取模後縮小數值在輸出。

定義模運算為 a 除以 m 的餘數,記為:

a mod m = a % m

取模的結果滿足 0 <= a mod m <= m-1,題目用給定的 m 限制計算結果的範圍。例如 m = 10,就是取計算結果的個位數,參考 hud 1061 題 ,求 nn ,n <= 109 ,輸出結果的個位數。

取模操作滿足以下性質。

加:(a+b) mod m = ((a mod m) + (b mod m)) mod m

減:(a-b) mod m = ((a mod m) - (b mod m)) mod m

乘:(a*b) mod m = ((a mod m) * (b mod m)) mod m

然而,對除法取模進行下面的類似操作是錯誤的:

(a/b) mod m = ((a mod m) / (b mod m)) mod m

例如,(100/50) mod 20 = 2,(100 mod 20) / (50 mod 20) mod 20 = 0,兩者不相等。

除法的取模需要用到逆元。

模運算性質

給定乙個正整數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算術和除以...

大數運算 模加減運算

一 vs平台 利用c語言對大數運算中的模加減運算進行了編碼。二 編碼思想 條件 大數a 大數b 模p 結果r 1 加法 首先,判斷a b這兩個大數是否小於模p。如果a和b都小於模p,則 若a b p,r a b p 若a b 如果a和b其中有乙個大於模p或者都大於模p,先將a或b減去p,直到a和b都...

python模運算求餘 取模運算和取餘運算

取模運算和取餘運算 取模運算 modulo operation 和取餘運算 complementation 兩個概念有重疊的部分但又不完全一致。主要的區別在於對負整數進行除法運算時操作不同。取模主要是用於 計算機術語中。取餘則更多是數學概念。模運算在數論和程式設計中 都有著廣泛的應用,從奇偶數的判別...