簡介
模除(又稱模數、取模操作、取模運算等,英語:modulo有時也稱作 modulus)得到的是一個數除以另一個數的餘數。
給定兩個正整數:被除數
a和除數
n,
amodulo
n(縮寫為
amod
n)得到的是使用
歐幾里德除法時
a/
n的餘數。 舉個例子:計算表達式 "5 mod 2" 得到 1,因為 5÷2=2...1(5 除以 2 商 2 余 1);而 "9 mod 3" 得到 0,因為 9÷3=3...0;注意:如果使用計算器做除法,不能整除時,你不會得到商,而是會得到一個小數,如:5÷2=2.5。
雖然通常情況下
a和
n都是整數,但許多計算系統允許其他類型的數字操作,如:對浮點數取模。一個整數對
n取模的結果範圍為: 0 到
n− 1(
amod 1恆等於 0;
amod 0則是未定義的,在程式語言里可能會導致除零錯誤)。 有關概念在
數論中的套用請參閱模算數。
當a和n均為負數時,通常的定義就不適用了,不同的程式語言對結果有不同的處理。
用途
記號
一些計算器有取模mod()按鈕,很多程式語言里也有類似的函式,通常像mod(a,n)這樣。 有些語言也支持在表達式內使用 "%"、"mod" 或 "Mod" 作為取模或取余操作符。
或
或者在一些沒有mod()函式的環境中使用等價的: (注意 'int' 事實上等價於截斷函式an,進行了向 0 取整)
等價性
恆等式:
(amodn) modn=amodn
對所有的正數x有:nmodn= 0
逆運算:
分配律:
(a+b) modn= [(amodn) + (bmodn)] modn
abmodn= [(amodn)(bmodn)] modn
dmod (
abc) = (
dmod
a) +
a[(
d\
a) mod
b] +
ab[(
d\
a\
b) mod
c],符號\是
歐幾里德除法中的除法操作符,運算結果為商
cmod (a+b) = (cmoda) + [bc\ (a+b)] modb- [bc\ (a+b)] moda.
除法定義:僅當式子右側有定義時,即b、n互質時有:abmodn= [(amodn)(bmodn)] modn,其他情況為未定義的。
乘法逆元:[(abmodn)(bmodn)] modn=amodn.