Översikt

Modulooperationen ger resten efter heltalsdivision. I enkel form sägs "a mod n" vara det tal r som uppfyller a = q·n + r, där q är en kvot och 0 ≤ r < n i den vanligaste konventionen. För en grundläggande förklaring se matematisk introduktion eller definitioner av rest och aritmetisk division. Begreppet hänger nära ihop med själva ordet division och hur heltal behandlas.

Definition och notation

I praktiken används beteckningar som a mod n eller a % n. För heltal används ofta ordningen där heltal delas och en kvot och rest bestäms. I ren talteori talar man också om kongruenser: a ≡ b (mod n) betyder att a och b har samma rest när man delar med n.

Variationer i datorer och språk

Implementeringen av modulo skiljer sig mellan system och språk, bland annat beroende på hur negativa tal hanteras. Olika plattformar såsom datorer och miniräknare kan ge olika resultat för uttryck med negativa operander. Valet av regel styrs ofta av vilket programmeringsspråk eller vilken hårdvara som används: vissa definitioner returnerar en alltid icke-negativ rest, andra följer kvotens avrundningsregler.

Egenskaper och viktiga fakta

  • Transitivitet i kongruenser: om a ≡ b (mod n) gäller det att a + k ≡ b + k.
  • Multiplikation bevarar kongruens modulo n.
  • Modulo definierar en restklassring Z/nZ, central i algebraisk talteori.
  • Notera att division med modulo inte alltid har en invers; invers finns bara när talet är relativt primärt mot modulen.

Användningsområden och exempel

Modulo används frekvent i datorprogrammering för cykling genom index, hashfunktioner, tidberäkningar (klockor) och inom kryptografi, till exempel i algoritmer som bygger på primtal och restklasser. Ett enkelt exempel: 17 mod 5 = 2 eftersom 17 = 3·5 + 2. I implementerad kod kan samma uttryck ge olika tecken beroende på språkets specifika definition.

Vanliga fallgropar

Det viktigaste är att veta vilken konvention som gäller i en given miljö: negativa operander, beteende vid flyttal kontra heltal, och prestandaaspekter i hårdvara kan påverka resultat och effektivitet. För klargörande och praktiska detaljer, konsultera dokumentationen för aktuell miljö eller standardspecifikationer via matematisk introduktion och implementeringsguider (rest, aritmetisk division, division, heltal, kvot, datorer, miniräknare, programmeringsspråk, hårdvara).