Was ist Modulo?
Die Modulo-Operation (kurz „mod" oder „%") gibt denRest einer ganzzahligen Division zurück. Sie beantwortet die Frage: Was bleibt übrig, wenn ich a durch b teile?
Beispiel: 17 mod 5 = 2, denn 17 ÷ 5 = 3 Rest 2. Oder anders: 3 × 5 = 15, und 17 - 15 = 2. Der Rest ist immer kleiner als der Divisor.
Die Modulo-Formel
Mathematisch: a mod b = a - (b × ⌊a/b⌋), wobei ⌊...⌋ das Abrunden zur nächsten ganzen Zahl bedeutet.
Schritt für Schritt: Teile a durch b (nur ganzzahlig). Multipliziere das Ergebnis mit b. Ziehe das von a ab. Das Ergebnis ist der Rest.
Beispiel 23 mod 7: 23 ÷ 7 = 3,28... → ganzzahlig: 3. 3 × 7 = 21. 23 - 21 = 2.
Modulo in der Programmierung
In den meisten Programmiersprachen wird Modulo mit dem %-Operatorgeschrieben: 17 % 5 ergibt 2. Python, JavaScript, Java, C, PHP und viele andere nutzen diese Syntax.
Wichtig: Bei negativen Zahlen verhalten sich verschiedene Sprachen unterschiedlich. Python gibt immer ein positives Ergebnis (gleiches Vorzeichen wie der Divisor), während C/Java das Vorzeichen des Dividenden übernehmen.
Praktische Anwendungen
Gerade/Ungerade prüfen: n % 2 == 0 bedeutet gerade, n % 2 == 1 bedeutet ungerade. Eine der häufigsten Anwendungen überhaupt.
Zyklische Werte: Uhrzeiten (stunden % 24), Wochentage (tag % 7), oder Array-Indizes (index % array.length) für Ringpuffer.
Prüfziffern: ISBN, IBAN, Kreditkarten und viele andere Nummern verwenden Modulo zur Fehlererkennung. Die ISBN-10 nutzt z.B. Modulo 11.
Kryptographie: RSA-Verschlüsselung und andere kryptographische Verfahren basieren auf modularer Arithmetik mit sehr großen Primzahlen.
Modulo-Eigenschaften
(a + b) mod n = ((a mod n) + (b mod n)) mod n – Addition ist kompatibel mit Modulo.
(a × b) mod n = ((a mod n) × (b mod n)) mod n – Multiplikation ebenfalls, wichtig für effiziente Berechnungen.
a mod 1 = 0 für alle ganzen Zahlen a.a mod a = 0. 0 mod b = 0 für alle b ≠ 0.
Uhrzeiten-Beispiel
Wenn es 22 Uhr ist, wie spät ist es in 5 Stunden? (22 + 5) mod 24 = 27 mod 24 = 3 Uhr. So funktioniert die 24-Stunden-Uhr mathematisch.
Ähnlich für Wochentage: Heute ist Mittwoch (Tag 3). Welcher Tag ist in 10 Tagen? (3 + 10) mod 7 = 13 mod 7 = 6 = Samstag.
Hinweis
Bei Division durch 0 ist Modulo nicht definiert – genau wie bei der normalen Division. Die meisten Programmiersprachen werfen hier einen Fehler. Beachte auch die unterschiedliche Behandlung negativer Zahlen in verschiedenen Sprachen.