Modulare-Arithmetik-Rechner (Mod-Rechner)
Ein Rechner für modulare Arithmetik mit 4 Modi: Grundlegendes Mod, modulare Addition/Subtraktion/Multiplikation, modulare Potenzierung (schnelle Potenzierung durch wiederholtes Quadrieren) und modulares Inverses (erweiterter euklidischer Algorithmus). Berechnet negative Mod-Werte und riesige Exponenten mit BigInt exakt.
Grundlegende Eigenschaften der modularen Arithmetik
| Eigenschaft | Beschreibung |
|---|---|
| (a + b) mod n = ((a mod n) + (b mod n)) mod n | Ob man das Mod vor oder nach der Addition nimmt, das Ergebnis ist genau dasselbe. |
| (a − b) mod n = ((a mod n) − (b mod n) + n) mod n | Da die Subtraktion ein negatives Ergebnis liefern kann, sorgt das abschließende Addieren von n und erneute Mod-n-Nehmen dafür, dass das Ergebnis im Bereich [0, n) bleibt. |
| (a × b) mod n = ((a mod n) × (b mod n)) mod n | Wie bei der Addition ändert das Nehmen des Mods während der Multiplikation nichts am Endergebnis. Diese Eigenschaft bildet die Grundlage für die schnelle Berechnung von Potenzen (wiederholtes Quadrieren). |
| a und n sind teilerfremd ⇔ es existiert ein Inverses von a modulo n | Nur wenn der erweiterte euklidische Algorithmus gcd(a, n) = 1 liefert, existiert ein x (das Inverse), das a × x ≡ 1 (mod n) erfüllt. |
Was ist modulare Arithmetik (Mod-Rechnung)?
Modulare Arithmetik ist eine Rechenweise, bei der man sich ausschließlich für den Rest interessiert, den man erhält, wenn man eine Zahl durch eine positive Ganzzahl – den sogenannten Modulus – teilt. Haben zwei Ganzzahlen a und b bei Division durch denselben Modulus n denselben Rest, nennt man sie "kongruent modulo n" und schreibt a ≡ b (mod n). Dieses Tool bündelt die vier gebräuchlichsten Rechnungen rund um die Kongruenz in den Modi "Grundlegendes Mod", "Addition/Subtraktion/Multiplikation", "Potenzierung" und "Inverses".
Sämtliche Berechnungen laufen intern über den nativen BigInt-Typ von JavaScript, sodass auch Potenzen mit mehreren hundert Stellen im Exponenten oder Additionen und Multiplikationen sehr großer Ganzzahlen ohne Rundungsfehler exakt berechnet werden. Geben Sie eine negative Zahl ein, normalisiert das Tool das Ergebnis stets gemäß der mathematischen Definition der Kongruenz (der Rest liegt immer im Bereich von 0 bis n − 1), sodass Sie sich nicht mit den je nach Programmiersprache unterschiedlichen Verhaltensweisen des Modulo-Operators herumschlagen müssen.
So verwenden Sie den Mod-Rechner
- Modus auswählen Wählen Sie zwischen "Grundlegendes Mod", "Addition/Subtraktion/Multiplikation", "Potenzierung" und "Inverses" die gewünschte Berechnungsart aus.
- Ganzzahlen eingeben Geben Sie je nach gewähltem Modus a, b und den Modulus n ein – oder bei der Potenzierung Basis und Exponent. Negative Ganzzahlen können Sie direkt eingeben.
- Operator festlegen (nur im Modus Addition/Subtraktion/Multiplikation) Wählen Sie aus dem Dropdown-Menü Addition, Subtraktion oder Multiplikation aus.
- Ergebnis ablesen Mit jeder Eingabe wird automatisch neu gerechnet, und Formel sowie Ergebnis erscheinen sofort. Existiert kein Inverses, wechselt die Anzeige zu einer entsprechenden Fehlermeldung.
- Eingaben zurücksetzen Über die Schaltfläche "Zurücksetzen" leeren Sie die Eingabefelder aller vier Modi auf einmal.
Tipps für die Nutzung
- Das Verhalten von Mod bei negativen Zahlen unterscheidet sich je nach Programmiersprache. Dieses Tool folgt der mathematischen Definition (das Ergebnis liegt stets zwischen 0 und n − 1), sodass -7 mod 3 gleich 2 ist, nicht -1.
- Der Potenzierungsmodus verwendet wiederholtes Quadrieren, sodass er auch bei Exponenten mit Hunderten von Stellen sofort ein Ergebnis liefert. Derselbe Algorithmus wird bei der Ver- und Entschlüsselung von RSA eingesetzt.
- Die Uhrzeit ist ein alltägliches Beispiel für modulare Arithmetik: Rechnet man "15 Uhr" in das 12-Stunden-Format um, ergibt sich 15 mod 12 = 3 Uhr.
- Der Inverse-Modus funktioniert, solange a und n teilerfremd sind (ihr größter gemeinsamer Teiler ist 1), selbst wenn n keine Primzahl ist.
- Im Wettbewerbsprogrammieren wird häufig verlangt, die Antwort modulo einer großen Primzahl wie 1.000.000.007 anzugeben, statt der riesigen Rohzahl. Der Potenzierungsmodus dieses Tools eignet sich auch zum manuellen Nachrechnen solcher Aufgaben.
Anwendungsfälle der modularen Arithmetik
Public-Key-Kryptografie wie RSA nachvollziehen
Ver- und Entschlüsselung bei RSA bestehen im Kern darin, eine riesige Zahl zu potenzieren und den Rest modulo n zu bilden. Erhöhen Sie im Potenzierungsmodus Exponent und Modulus, um die Geschwindigkeit des wiederholten Quadrierens selbst zu erleben.
Das Funktionsprinzip von Hash-Funktionen verstehen
Viele Hash-Funktionen falten ihre Zwischenwerte über eine Modulo-Operation auf einen festen Wertebereich zusammen. Im Modus Addition/Subtraktion/Multiplikation lässt sich Schritt für Schritt verfolgen, wie sich der Rest bei jeder Zwischenrechnung verändert.
Prüfziffern von ISBN, Kreditkarte oder IBAN nachrechnen
Prüfziffern wie bei ISBN, Kreditkartennummern oder Bankkontonummern ergeben sich aus der gewichteten Summe der einzelnen Ziffern modulo einem festgelegten Modulus. Der Modus "Grundlegendes Mod" eignet sich hervorragend, um solche Prüfziffern von Hand nachzurechnen.
Wochentage und Kalenderzyklen berechnen
Fragen wie "Welcher Wochentag ist in n Tagen?" oder "In welchem Zyklus wiederholen sich Schaltjahre?" lassen sich als Kongruenz modulo 7 beziehungsweise modulo 4 formulieren und damit exakt beantworten.
Lösungen im Wettbewerbsprogrammieren gegenprüfen
Bei der häufigen Aufgabenstellung "Gib das Ergebnis modulo 1.000.000.007 aus" können Sie mit dem Potenzierungs- und dem Addition/Subtraktion/Multiplikation-Modus überprüfen, ob Ihre eigene Implementierung das richtige Ergebnis liefert.
Glossar zur modularen Arithmetik
- Kongruenz
- Eine Beziehung der Form a ≡ b (mod n), die besagt, dass a und b bei Division durch n denselben Rest ergeben. Das Zeichen "≡" statt "=" macht deutlich, dass nicht die Werte selbst, sondern nur ihre Reste übereinstimmen.
- Modulus
- Die Zahl, durch die geteilt wird. In diesem Tool geben Sie dafür eine Ganzzahl ab 1 an. Ändert sich der Modulus, ändert sich auch, welche Zahlen zueinander kongruent sind.
- Restwert (Modulo-Operation)
- Die tatsächliche Berechnung des Rests, der beim Teilen einer Zahl durch den Modulus entsteht. Nach mathematischer Definition liegt das Ergebnis stets zwischen 0 und dem Modulus minus eins.
- Modulares Inverses
- Eine Ganzzahl x, die a · x ≡ 1 (mod n) erfüllt. Innerhalb der modularen Arithmetik erzielt man mit der Multiplikation durch das Inverse denselben Effekt wie mit einer "Division durch a".
- Teilerfremd
- Zwei Ganzzahlen sind teilerfremd, wenn ihr größter gemeinsamer Teiler gleich 1 ist. Nur wenn a und n teilerfremd sind, existiert ein Inverses von a modulo n.
- Erweiterter euklidischer Algorithmus
- Ein Verfahren, das gleichzeitig mit der Bestimmung des größten gemeinsamen Teilers auch ein Zahlenpaar (x, y) findet, das a · x + n · y = ggT(a, n) erfüllt. Dieses Verfahren steckt hinter der Berechnung im Inverse-Modus.
- Schnelle Potenzierung (Square-and-Multiply)
- Ein Algorithmus, der den Exponenten binär zerlegt und die Basis wiederholt quadriert, wobei nur an den relevanten Binärstellen mit dem Zwischenergebnis multipliziert wird. So kommt man mit einer Anzahl von Multiplikationen aus, die proportional zur Stellenzahl des Exponenten ist. Er wird im Potenzierungsmodus verwendet.
- Modulare Exponentiation
- Die Berechnung, bei der eine Basis potenziert und anschließend der Rest modulo n gebildet wird. Sie ist die zentrale Operation bei Ver- und Entschlüsselung im RSA-Verfahren und entspricht dem Potenzierungsmodus dieses Tools.
Häufig gestellte Fragen
Übrigens – die "Uhrzeit-Arithmetik" hinter moderner Kryptografie
Modulare Arithmetik (Kongruenz) wird oft als "Uhrzeit-Arithmetik" (clock arithmetic) bezeichnet. Bei einer 12-Stunden-Uhr wird 13 Uhr als "gleich" mit 1 Uhr behandelt – genau das ist die Kongruenz 13 ≡ 1 (mod 12), eine Idee, die sich nur auf den Rest konzentriert, der bleibt, wenn eine Zahl durch einen Modulus (hier 12) geteilt wird. Der deutsche Mathematiker Carl Friedrich Gauß systematisierte die Kongruenznotation "≡" in seinem 1801 erschienenen Werk Disquisitiones Arithmeticae und machte diese Idee damit zu einem Standardwerkzeug der modernen Mathematik.
Diese scheinbar einfache Operation bildet das Fundament der modernen Internetsicherheit. Bei Public-Key-Kryptosystemen wie RSA ist die "modulare Potenzierung" – das Potenzieren einer riesigen Zahl und anschließende Nehmen des Rests modulo n – die zentrale Operation bei Ver- und Entschlüsselung. Da Exponent und Modulus jeweils Hunderte von Stellen haben können, würde ein naives Berechnen der vollständigen Potenz vor dem Rest-Nehmen den Rechenaufwand explodieren lassen. Wiederholtes Quadrieren dagegen erfordert nur eine Anzahl von Multiplikationen, die proportional zur Ziffernzahl des Exponenten ist, wodurch es praktikabel wird.
Auch die Berechnung modularer Inverser mittels des erweiterten euklidischen Algorithmus ist eine grundlegende Technik, die in der gesamten Informatik zum Einsatz kommt – von der Kryptografie über die Codierungstheorie bis zum Design von Hash-Funktionen. Dass eine "über 2000 Jahre alte Arithmetik" und "modernste Sicherheitstechnologie" auf demselben mathematischen Fundament beruhen, ist ein eindrucksvolles Symbol für die Universalität der Zahlentheorie.