Modulo Calculator
Bereken de rest van een deelbewerking. Vind a mod b direct met stapsgewijze uitleg. Dit gratis rekenhulpmiddel geeft directe, nauwkeurige resultaten.
Wat is de Modulo-bewerking?
De modulo-bewerking (mod, of %) geeft de rest na het delen van een getal door een ander. Voor a mod b: deel a door b, en het resultaat is de rest. Bijvoorbeeld, 17 mod 5 = 2 (want 17 = 3 × 5 + 2). Het resultaat ligt altijd in het bereik [0, b-1] voor positieve waarden.
De fundamentele relatie: a = q × b + r, waar q het quotient (vloer(a/b)) en r de rest (0 ≤ r < b) is. Modulo is de bijbehorende bewerking tot gehele deling — als a ÷ b = q met rest r, dan a mod b = r. Deze calculator gebruikt de ware wiskundige modulo-definitie (altijd niet-negatief voor positieve deler), in plaats van de getekende rest die door sommige programmeertalen wordt gebruikt.
Modulair wiskunde — wiskunde met een vaste modulus waarbij getallen "omdraaien" — vormt de basis van klokkenarithmetic. Uur op een klok worden berekend mod 12 of mod 24. Als het 10 uur is en je voegt 5 uur toe: (10 + 5) mod 12 = 3 (PM). Deze om-draaiende gedrag is centraal bij ongekende algoritmen in informatica, cryptografie en getaltheorie.
Modulo-exemplaren en stap-voor-stapoplossingen
Modulo-begrip wordt intuïtief met voorbeelden. Voor elke berekening hieronder is de formule: rest = a - vloer(a ÷ b) × b.
| Uitdrukking | Quotient (vloer) | Rest (a mod b) | Verificatie |
|---|---|---|---|
| 17 mod 5 | 3 | 2 | 3 × 5 + 2 = 17 ✓ |
| 20 mod 4 | 5 | 0 | 5 × 4 + 0 = 20 ✓ |
| 7 mod 3 | 2 | 1 | 2 × 3 + 1 = 7 ✓ |
| 100 mod 7 | 14 | 2 | 14 × 7 + 2 = 100 ✓ |
| 13 mod 13 | 1 | 0 | 1 × 13 + 0 = 13 ✓ |
| 1 mod 5 | 0 | 1 | 0 × 5 + 1 = 1 ✓ |
| 256 mod 16 | 16 | 0 | 16 × 16 + 0 = 256 ✓ |
| 365 mod 7 | 52 | 1 | 52 × 7 + 1 = 365 ✓ |
Opmerking 365 mod 7 = 1: dit vertelt ons dat een niet-springjaar 52 complete weken plus 1 extra dag heeft, waardoor de dag van de week met 1 verschuift per niet-springjaar. Een springjaar (366 dagen) mod 7 = 2, waardoor de dag met 2 verschuift.
Toepassingen van Modulair Wiskunde
Modulo verschijnt overal in programmeertaal en wiskunde. Even/oneven controle: als n % 2 == 0, is n even. Circulaire arrays en ringbuffers: index = (huidige_index + 1) % array_size draait om naar het begin. Hash-tabellen: bucket = hash(key) % num_buckets mapt elke hash-waarde naar een geldige bucket-index, zodat er geen uit-buikgrenzen toegang is.
In kalenderberekeningen wordt dag-van-de-week-arithmetic gebruikt mod 7. De Zeller-formule en Doomsday-algoritme beide vertrouwen op modulair wiskunde om de dag van de week voor elke datum te bepalen. Deze werken omdat er precies 7 dagen in een week zitten — een vaste modulus. Tijdzone-offsets gebruiken mod 24 om uurwaarden correct te draaien over middernachtgrenzen.
In digitale systemen wordt modulo overal gebruikt waar memory-adressen betrokken zijn. Paginatableitten, cache-set-selectie en memory-mapped I/O gebruiken allemaal modulair indexeren. CPU-instructiesets bevatten meestal een rest (modulo-achtige) instructie naast deling, en SIMD-vector instructies gebruiken modulo voor lane-wrapping in shuffles.
In foutdetectie worden cyclische redundantiecontroles (CRC's) en checksums berekend met behulp van polynomiale modulair wiskunde over GF(2). Creditcardnummers passen de Luhn-algoritme (een modulo-10 controle). ISBN-10 boeknummers gebruiken mod 11. Deze checksums vangen transpositie- en enkele-cijferfouten in in numerieke codes.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Modulo",
"image": "https://example.com/image.jpg",
"description": "Modulo is een wiskundige bewerking die de rest geeft na het delen van een getal door een ander.",
"author": {
"@type": "Person",
"name": "John Doe"
},
"publisher": {
"@type": "Organization",
"name": "Wiskunde.nl"
},
"datePublished": "2022-01-01"
}
Modulo in Cryptografie
Modulair wiskunde is de wiskundige basis van moderne openbare sleutelcryptographye. De drie belangrijkste cryptografische algoritmes — RSA, Diffie-Hellman en Elliptische Curve Cryptography — zijn allemaal afhankelijk van operaties uitgevoerd modulo een groot priemgetal of samengesteld getal.
RSA-encryptie maakt gebruik van modulair exponentiatie: om een bericht M te versleutelen met openbare sleutel (e, n), bereken C = M^e mod n. Om te ontsleutelen, bereken M = C^d mod n waarbij d de private sleutel is. De veiligheid berust op de moeilijkheid van het factoren van n (een groot semipriemgetal) — alleen n kennen, p en q herstellen is computioneel onmogelijk voor sleutelgrootte boven 2048 bits.
Diffie-Hellman sleuteluitwisseling stelt twee partijen in staat om een gedeeld geheim over een onveilige kanaal te creëren: Alice stuurt A = g^a mod p, Bob stuurt B = g^b mod p. Elke partij berekent het gedeelde geheim: Alice berekent B^a mod p = g^(ab) mod p, Bob berekent A^b mod p = g^(ab) mod p. Een inluisteraar die g^a mod p en g^b mod p opvangt, kan g^(ab) mod p niet herstellen zonder het discrete logaritme-probleem op te lossen.
De veiligheid van deze systemen berust op de enkelrichting van modulair exponentiatie: g^a mod p berekenen is snel (met herhaalde squaring, O(log a) vermenigvuldigingen), maar het omkeren ervan — een gegeven g^a mod p vinden — wordt geloofd om exponentiële tijd te vereisen voor grote priemgetallen p.
Modulo met Negatieve Getallen en Randgevallen
Modulair gedrag met negatieve getallen varieert per programmeertaal, wat veel moeilijk te vinden bugs veroorzaakt. Het begrijpen van de verschillen is essentieel voor softwareontwikkelaars.
| Taal | -7 % 3 | 7 % -3 | Definitie |
|---|---|---|---|
| Python | 2 | -2 | Teken volgt de deelgetal (echte modulo) |
| JavaScript | -1 | 1 | Teek volgt het dividend (rest) |
| C / C++ | -1 | 1 | Teek volgt het dividend (C99+) |
| Java | -1 | 1 | Teek volgt het dividend |
| Ruby | 2 | -2 | Teek volgt de deelgetal (echte modulo) |
| Wiskunde (definitie) | 2 | 1 (of onbepaald) | Altijd niet-negatief voor positieve deelgetallen |
In de wiskunde, retourneert modulo altijd een niet-negatief resultaat: -7 mod 3 = 2 (aangezien -7 = -3×3 + 2, en 0 ≤ 2 < 3). Dit calculator gebruikt de wiskundige definitie.
De veilige manier om een niet-negatief resultaat te garanderen in elke taal: ((a % b) + b) % b. Dit handelt negatieve invoer correct af en wordt intern door onze calculator gebruikt. Dit patroon is essentieel wanneer modulo gebruikt wordt voor array-indexering of kalenderdagberekeningen waar negatieve resultaten fouten veroorzaken.
Randgevallen om onthouden: (1) Elk getal mod 1 = 0 — deling door 1 laat geen rest over. (2) Elk getal mod zichzelf = 0. (3) 0 mod enige niet-nul getal = 0. (4) Deling (en modulo) door nul is onbepaald — valideer de deelgetal altijd voorafgaand aan het berekenen van modulo. Onze calculator toont een duidelijke foutmelding voor modulo door nul.
Modulo en Delingstesten
Een van de meest praktische toepassingen van modulo is het testen van dekeling zonder een volledige deling uit te voeren. Een getal a is deelbaar door b als en alleen als a mod b = 0. Dit maakt snelle delingstests mogelijk:
| Deelbaarheid door | Test | Forbeeld |
|---|---|---|
| 2 | n mod 2 = 0 (laatste cijfer even) | 128 mod 2 = 0 ✓ |
| 3 | Samenvatting van cijfers mod 3 = 0 | 123: 1+2+3=6, 6 mod 3 = 0 ✓ |
| 4 | Laatste twee cijfers mod 4 = 0 | 312: 12 mod 4 = 0 ✓ |
| 5 | Laatste cijfer is 0 of 5 | 735 mod 5 = 0 ✓ |
| 9 | Samenvatting van cijfers mod 9 = 0 | 369: 3+6+9=18, 18 mod 9 = 0 ✓ |
| 10 | n mod 10 = 0 (laatste cijfer is 0) | 500 mod 10 = 0 ✓ |
Deze delingstesten zijn korte handige regels die zijn afgeleid uit eigenschappen van modulair rekenen. De cijfersommenregels voor 3 en 9 werken omdat 10 ≡ 1 (mod 3) en 10 ≡ 1 (mod 9), wat betekent dat de plaatselijke waarde van elk cijfer voor de deelbaarheid door 3 of 9 irrelevant is. Deze regels worden in het basisonderwijs aangeleerd zonder de modulair rekenkundige context, maar de onderliggende mechanisme is modulo.
Modulair Exponentiatie: Snel Vermenigvuldigen
Berekenen van a^b mod n rechtstreeks door eerst a^b te berekenen, dan n te nemen, is onpraktisch voor grote exponenten — a^100 kan duizenden cijfers hebben. Modulair exponentiatie gebruikt de identiteit (a×b) mod n = ((a mod n) × (b mod n)) mod n om de tussenresultaten klein te houden.
De snelle algoritme gebruikt herhaalde vermenigvuldiging (binair exponentiatie):
- Schrijf b in binair: b=13 = 1101₂
- Bereken a, a², a⁴, a⁸ elk genomen mod n
- Vermenigvuldig de machten die corresponderen met 1-bits: a¹³ = a⁸ × a⁴ × a¹ (mod n)
Hierdoor wordt het aantal vermenigvuldigingen van b naar O(log₂ b) verlaagd. Voor b = 2048-bit RSA-exponenten (~10^600), is dit het verschil tussen miljarden vermenigvuldigingen en slechts ~2000. Zonder deze optimalisatie zou RSA-encryptie onmogelijk zijn.
Veelgestelde Vragen
Wat is 15 mod 4?
15 mod 4 = 3. Omdat 15 = 3×4 + 3, is de rest 3. Controleer: 3×4 = 12, en 15 − 12 = 3.
Wat betekent mod 0?
Modulo door nul is ondefinieerd, net als deling door nul. Je kunt geen mod 0 berekenen. Onze calculator geeft een foutmelding in dit geval. Elke delingsoperatie vereist een niet-nul deler.
Hoe staat modulo in verband met dekelbaarheid?
Een getal a is deelbaar door b als en alleen als a mod b = 0. Bijvoorbeeld, 24 mod 6 = 0, dus 24 is deelbaar door 6. 25 mod 6 = 1, dus 25 is niet deelbaar door 6. Dit maakt modulo de fundamentele tool voor dekelbaarheidstesten in de computerwetenschap.
Wat is de verschillen tussen mod en rest?
Voor positieve getallen zijn mod en rest identiek. Voor negatieve getallen verschillen ze: de wiskundige modulo geeft altijd een niet-negatief resultaat (teken volgt de deler), terwijl de rest het teken van de dividend neemt. Bijvoorbeeld, -7 mod 3 = 2 (wiskunde), maar -7 rest 3 = -1 (zoals in C, Java, JavaScript).
Wat is 10 mod 3?
10 mod 3 = 1. Omdat 10 = 3×3 + 1, is de rest 1. Je kunt controleren: 3×3 = 9, en 10 − 9 = 1. Dit betekent dat 10 een rest van 1 heeft wanneer het wordt gedeeld door 3, dus 10 is niet deelbaar door 3.
Wat is 0 mod 5?
0 mod 5 = 0. Nul gedeeld door een niet-nul getal geeft quotiënt 0 en rest 0. In het algemeen is 0 mod n = 0 voor elk n ≠ 0. Dit is consistent met de definitie: 0 = 0×5 + 0.
Hoe wordt modulo gebruikt in programmeren?
Gebruikelijke programmeringsgebruiken omvatten: controleren of een getal even of oneven is (n%2==0), ringbuffer implementeren, items verdelen over zakken in hash tabellen (hash%size), door cyclische toestanden in een statemachine roteren, en periodieke gebeurtenissen laten afvuren op elke nste iteratie (counter%n==0).
Wat is klokaritmetiek?
Klokaritmetiek is elke dagelijkse modulaire aritmetiek. Een 12-urenklok gebruikt mod 12: 11 uur + 3 uur = (11+3) mod 12 = 2 uur. Dit omloopgedrag is precies modulaire aritmetiek. Zo gebruiken we ook dagen van de week mod 7, en militaire tijd gebruikt mod 24 voor uren.
Waarom is modulo belangrijk in cryptografie?
Modulaire aritmetiek maakt een-richtingsfuncties mogelijk. Het berekenen van g^a mod p (gegeven g, a, p) is snel, maar het vinden van g^a mod p en p (het discrete logaritme probleem) is computioneel onmogelijk voor grote priemgetallen. Deze asymmetrie vormt de basis voor Diffie-Hellman-sleuteluitwisseling, RSA en de meeste publieke-sleutel cryptografie die internetcommunicaties beschermt.
Wat is het resultaat van elk getal mod 1?
Elk geheel getal mod 1 = 0. Deling door 1 laat geen rest achter — elk geheel getal is perfect deelbaar door 1. Dit is wiskundig consistent: a = a×1 + 0, dus de rest is altijd 0. Dit randgeval is belangrijk om te behandelen in modulaire aritmetische implementaties.
Modulo in het Dagelijks Leven: Praktische Voorbeelden
Modulair rekenen komt veel vaker voor in het dagelijks leven dan de meeste mensen zich realiseren. Zodra je een klok leest, berekent wanneer een wekelijkse gebeurtenis terugkeert, controleert of een getal deelbaar is door 9 is, of kijkt naar de laatste cijfer van een jaar om te bepalen op welke dag van de week een huwelijksdag valt, doe je modulair rekenen — zelfs als je dat niet met die naam noemt.
Schrijven en terugkeer: Als een gebeurtenis elke 7 dagen plaatsvindt en vandaag is dinsdag (dag 2, zero-geïndexeerd van zondag=0), dan is 30 dagen van nu (2+30) mod 7 = 32 mod 7 = 4, wat donderdag is. Deze directe berekening is sneller dan weken en dagen apart tellen. Zoals een abonnement op de 28e van elke maand hernieuwt en het nu de 15e is, dan zijn de dagen tot hernieuwing (28−15) mod 31 = 13 dagen.
Digitale controlecijfers: De ISBN-13 barcode standaard gebruikt modulo 10. Het laatste cijfer van elke ISBN-13 wordt zo gekozen dat de gewogen som van alle 13 cijfers deelbaar is door 10. Als je een enkel cijfer verkeerd invoert bij het invoeren van een boek-ISBN, dan zal de controle mislukken (mod 10 ≠ 0) en wordt een fout gemeld. Creditcardnummers gebruiken de Luhn-algoritme — een mod-10 controle — voor dezelfde doeleinde. De ISBN-10 standaard gebruikt mod 11, waardoor detectie van enkele transposities mogelijk is.
Computergeheugen en adressen: RAM wordt doorgaans in machten van 2 (1024, 2048, 4096 bytes per pagina) aangesproken. Wanneer een programma geheugen toegang heeft, gebruikt de OS modulo om te berekenen welk geheugenpagina een adres valt in: paginanummer = adres mod paginagrootte. Selectie van cache-regels in CPU-caches gebruikt modulo soortgelijk. Buffer-wrap-around in audio-verwerking, netwerk-pakket-queue en video-streaming gebruiken allemaal cirkelvormige buffer-math: schrijfpositie = (schrijfpositie + 1) % buffersize.
Kunst en muziekpatronen: Ritmische patronen in muziektheorie worden geanalyseerd met behulp van modulair rekenen. Een 4/4 tijdteken heeft slagen 0, 1, 2, 3 herhalend — een mod-4 cyclus. Polyrhythmen ontstaan wanneer twee onafhankelijke ritmes met perioden m en n tegelijkertijd spelen; ze synchroniseren zich elke lcm(m,n) slagen. Visuele patronen zoals tegeltegels herhalen met modulair periodes in twee dimensies.
Geografische en tijdzoneberekeningen: UTC-afwijkingen variëren van −12 tot +14. Om tussen tijdzones om te rekenen: gegeven tijd T in UTC, lokale tijd = (T + afwijking) mod 24. Het resultaat lijkt onlogisch (bijv. 23 + 5 = 28, mod 24 = 4, wat 4:00 uur de volgende dag betekent), maar de mod-operatie handelt de middernachtgrens correct af. Internationale datumlijn overschrijdingen gebruiken mod 24 in combinatie met dag-van-de-weekberekeningen met mod 7.
Door modulo te begrijpen, worden deze dagelijkse berekeningen duidelijker, sneller en minder foutgevoelig. Zodra je de patroon ziet, merk je modulair rekenen in compiler-optimalisaties, rotatiesalgoritmes in videospellen, round-robin-toernooi-schrijven en belastingbalansering over serverclusters — allemaal afhankelijk van het eenvoudige maar krachtige concept van overblijvend restant na deling.