同餘(英語:Congruence modulo[1],符號:≡)在數學中是指數論中的一種等價關係[2]。當兩個整數除以同一個正整數,若得相同餘數,則二整數同餘。同餘是抽象代數中的同餘關係的原型[3]。最先引用同餘的概念與「≡」符號者為德國數學家高斯。
對某兩個整數,,若它們除以正整數所得的餘數相等,則稱,對於模同餘,也就是嚴格來說,存在整數使得
則稱對於除數是同餘的。一般記做
比如
故可以記為
但另一方面,從有,故等價於
同餘符號「≡」其UTF-8碼為U+2261
。
可以證明所有對於模同餘的整數對構成一個(整數系上的)等價關係,換句話說,對於任意兩個整數,:
- (1)
- (2)
- (3)
故以下的集合
可稱為對於模的同餘類(congruence class或residue class),也可標記為;模在上下文很清楚時,也可簡記為。會被稱為該同餘類的代表數(representative)[4]。
剩餘系[5][6](英語:residue system)亦即模同餘類的代表數的集合,通常使用的代表數是最小非負整數,因為它是除法中的應當餘數。要注意的是,對於同一個模數,不同的同餘類不等價,亦即,屬於不同同餘類的整數不同餘於模數,或者說,模剩餘系中的任二元素不同餘於模;而且,整數體中的每個整數只屬於模數的一個同餘類,因為模將整數體劃分為互斥區塊,每個區塊是一個同餘類。
一個完全剩餘系(英語:complete residue system)指的是模的全部同餘類的代表數的集合;因為剩餘系中的任二元素不同餘於模,所以它也稱為非同餘餘數的完整系統(英語:complete system of incongruent residues)。例如,模有三個同餘類,其完全剩餘系可以是。如果該集合是由每個同餘類的最小非負整數所組成,亦即,則稱該集合為模的最小剩餘系(英語:least residue system)。
模完全剩餘系中,與模互質的代表數所構成的集合,稱為模的簡約剩餘系(英語:reduced residue system),其元素個數記為,亦即歐拉函數。例如,模的簡約剩餘系為或。如果模是質數,那麼它的最小簡約剩餘系是,只比最小剩餘系少一個。
(即是說 a 和 b 之差是 m 的倍數)
換句話說,[註 1]
同餘可以用來檢定一個數是否可以整除另外一個數,見整除規則。
當時,則為等量加法、減法:
這性質更可進一步引申成為這樣:
[註 2]
其中為任意整係數多項式函數。
k為整數,n為正整數,
為正整數,,若且唯若
若且互質,則
每個正整數都可以分解為數個因數的乘積,稱為整數分解。例如 ,因數 與 都可以整除 ,記為 與 。如果 可以整除某正整數 ,亦即 ,那麼 就是 的因數:,其中 為另一因數。,因此, 的因數也可以整除 :。
等價於 ,也就是 。亦即,如果 ,那麼它可以寫成 ,因此有以下除法原理:
- 的因數也可以整除 。亦即, 是 的倍數:,。因為 ,所以 。
- [註 1]
- 現假設 可以整除 的倍數 。如果 和 互質(記為 ),那麼 必定可以整除 :。
- [註 3]
- 如果 而且 ,那麼 與 的最小公倍數必定可以整除 ,記為 。這可以推廣成以下性質:
- [註 4]
- 上面的最後一個性質可以使用算術基本定理與集合來解釋。一個大於1的正整數 可以分解為一串質數冪的乘積:( 兩兩相異,且),令 為所有能整除 的質數冪的集合,即 。設 為正整數,則 整除 ,若且唯若 是 的子集。令 且 ,則 與 的聯集必定也是 的子集。取這個聯集中冪次最高的各個元素,它們的乘積就是 與 的最小公倍數。事實上,有 ,所以 也能夠整除 。
設,則,其中[7]
可用輾轉相除法、歐拉定理、卡邁克爾函數求解。
存在最小的正整數d使得成立,且。
考慮最大公因數,有解時用輾轉相除法等方法求解。
先求解每一個線性同餘方程式,再用中國剩餘定理解方程組。
勒壤得符號、雅可比符號、克羅內克符號、二次互反律用於判別d是否為模n的二次剩餘。
- 求自然數a的個位數字,就是求a與哪一個數對於模10同餘。
- 。
模數算術在數論、群論、環論、紐結理論、抽象代數、計算機代數、密碼學、計算機科學、化學、視覺和音樂等學科中皆有應用。
它是數論的立基點之一,與其各個面向都相關。
模數算術經常被用於計算標識符中所使用的校驗和,比如國際銀行帳戶號碼(IBANs)就用到了模97的算術,來捕獲用戶在輸入銀行帳戶號碼時的錯誤。
於密碼學中,模數算術是RSA與迪菲-赫爾曼密鑰交換等公鑰系統的基礎,它同時也提供有限體,應用於 橢圓加密,且用於許多對稱密鑰加密中,包括高級加密標準、國際資料加密演算法等。
於計算機科學, 同餘被應用於位元運算或其他與固定寬度之循環資料結構相關的操作。
於化學中, CAS號(一個對各種化合物皆異之的識別碼)的最後一碼為校驗碼,將CAS號首二部分最後的數字乘上一,下一碼乘上二,下一碼乘上三以此類推,將所有積加起來再取模10。
在音樂領域,模12用於十二平均律系統。
星期的計算中取模7算術極重要。
更廣泛而言,同餘在法律、經濟(見賽局理論)或其他社會科學領域中也有應用。
以下為快速展示小於63位元無號整數之模數乘法的C程式,且轉換過程中不發生溢位。計算 a * b (mod m)之演算法:
uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m)
{
uint64_t d = 0, mp2 = m >> 1;
int i;
if (a >= m) a %= m;
if (b >= m) b %= m;
for (i = 0; i < 64; ++i)
{
d = (d > mp2) ? (d << 1) - m : d << 1;
if (a & 0x8000000000000000ULL)
d += b;
if (d > m) d -= m;
a <<= 1;
}
return d%m;
}