Diese Seite ist meinem Freund Erich P. gewidment.
Die Rechenopertation Modulo ermittelt den Rest einer ganzzahligen Division.
Beispiel einer einfachen Moduloperation: 7 mod 3 = 1
In menschlicher Sprache übersetzt bedeutet es:
Sieben gebrochen durch Drei ergibt Zwei plus Eins Rest.
Die Anwendungen ist manigfaltig. Da wäre z. B. die Ermittlung von Primzahlen.
Eine Primzahl lässt sich nur durch sich selbst und durch Eins divdieren.
Jede Modulooperation die eine Null (nicht NULL) ausgibt, stellt einen untrüglichen Beweis für eine Nicht-Primzahl dar.
z. B. 6 mod 2 = 0. Sechs ist keine Primzahl weil sie sich ohne Rest durch 2 und 3 teilen lässt. Bei der Sieben, die eine Primzahl ist, bekommt nur einen Rest von Null, wenn man sie durch Eins oder Sieben teilt.
So braucht man auch Modulooperationen für die Validierung von IBAN Kontonummern.
Aus irgend einem (für mich) unerklärlichen Grund liefert JavaScript in einem Browser bei extrem hohen natürlichen Zahlen
ein falsches Ergebnis. Ich vermute es liegt am Integer-Save-Wert der 16 Stellen hat (bzw. 2^53-1 ).
In JavaScript wird die Modulooperation mit dem Prozentzeichen durchgeführt. z. B. 7 % 3 = 1.
Hier folgt eine Prüfung einer Modulooperation (die Werte können gerne verändert werden!) - sowohl mit dem JavaScript Ergebnis als auch mit meiner Lösung:
mod
Bitte geben Sie zwei natürliche Zahlen ein!
JavaScript Ergebnis
% =
Meine Lösung
meinMod(, ) =
Natürlich ist es nicht zu 100% sicher, dass meine Lösung richtig ist.
Aber meine Lösungsprüfungen auf unterschiedlichen online Modulo-Rechnern stimmen mit meinen Ergebenissen überein.
Mancherorts wird das JS Ergebnis angezeigt - anders wo ist mein Lösungsansatz stimmig.
Aber da der Taschenrechner auf meinem Linux-System die selbe Meinung vertritt wie ich, gehe ich davon aus, dass mein Lösungsansatz valide ist!
Hier die JavaScript Funktion:
Der Divident (erste Zahl) macht mir keine Sorgen. Dieser wird in der Funktion sowieso in Blöcke zu vier Stellen
aufgeschnitten. Sozusagen wird er wie ein String behandelt und ist damit fast keinen Grenzen unterworfen.
Zumindest so viel wie das <input type="text">
Element erlaubt.
Der Divisor (zweite Zahl) aber ist die Schwachstelle in der Funktion. Bei meinen Tests ergaben sich
Unregelmäßigkeiten, sobald dieser größer als der Integer-Save-Wert ist.
Deshalb ist die Funktion eher eine Diskussionsgrundlage als eine unumstößliche Wahrheit.