Zum Inhalt springen

Division mit Rest

aus Wikipedia, der freien Enzyklopädie

Die Division mit Rest ist ein mathematischer Satz aus der Algebra und der Zahlentheorie. Er besagt, dass es zu zwei ganzen Zahlen und eindeutig bestimmte ganze Zahlen und gibt, für die

gilt. Die Zahlen und lassen sich durch die schriftliche Division ermitteln.

Die Division mit Rest ist auch für Polynome definiert. Die allgemeinste mathematische Struktur, in der es eine Division mit Rest gibt, ist der euklidische Ring.

Natürliche Zahlen

[Bearbeiten | Quelltext bearbeiten]

Wenn zwei natürliche Zahlen, der Dividend und der Divisor (ungleich 0), mit Rest dividiert werden sollen, wenn also

berechnet werden soll, so wird gefragt, wie man die Zahl als Vielfaches von und einem „kleinen Rest“ darstellen kann:

Hier ist der sogenannte Ganzzahlquotient und der Rest. Entscheidende Nebenbedingung ist, dass eine der Zahlen ist. Hierdurch wird eindeutig bestimmt.

Der Rest ist also die Differenz zwischen dem Dividenden und dem größten Vielfachen des Divisors, das höchstens so groß ist wie der Dividend. Ein Rest ungleich 0 ergibt sich folglich genau dann, wenn der Dividend kein Vielfaches des Divisors ist. Man sagt auch: Der Dividend ist nicht durch den Divisor teilbar, weshalb ein Rest übrigbleibt.

Liegt der Divisor fest, so spricht man beispielsweise auch vom Neunerrest einer Zahl, also dem Rest, der sich bei Division dieser Zahl durch neun ergibt.

  • 9 : 4 = 2, Rest 1, da 9 = 4 × 2 + 1 („vier passt zweimal in neun und es bleibt eins übrig“ – der Rest ist also eins)
  • 2 : 4 = 0, Rest 2, da 2 = 4 × 0 + 2
  • 4 : 4 = 1, Rest 0, da 4 = 4 × 1 + 0

Die hier verwendete Schreibweise wird so in Grundschulen und teilweise auch in weiterführenden Schulen verwendet, ist fachwissenschaftlich aber problematisch und nicht ganz korrekt, da sie die Transitivität der Äquivalenzrelation „=“ verletzt. Man erhält bei dieser Schreibweise z. B. für die unterschiedlichen Divisionen 9 : 4 und 5 : 2 scheinbar das gleiche Ergebnis, nämlich (2, Rest 1), woraus gemäß «Sind zwei Zahlen einer dritten gleich, so sind sie untereinander gleich» irrigerweise 2,25 = 9/4 = (2, Rest 1) = 5/2 = 2,5 folgen würde. Oft werden daher die Schreibweisen 9 : 4 = 2 + 1 : 4 oder auch 9 = 4 × 2 + 1 vorgezogen.

An Grundschulen lässt sich die Division mit Rest durch das Teilen einer Menge in gleich große Teile erklären. Dabei hat man prinzipiell zwei Möglichkeiten: entweder wird die Anzahl der Teile vorgegeben oder deren Größe. Beispielsweise kann „7 geteilt durch 3 ergibt 2 Rest 1“ so konkretisiert werden:

7 Murmeln an 3 Kinder verteilen:
7 Murmeln in 3er-Päckchen aufteilen: 

Bestimmung des Restes für spezielle Teiler

[Bearbeiten | Quelltext bearbeiten]

Häufig kann man den Rest an der Dezimaldarstellung ablesen:

  • Bei Division durch 2: Der Rest ist 1, wenn die letzte Ziffer ungerade ist, bzw. 0, wenn die letzte Ziffer gerade ist.
  • Bei Division durch 3: Der Rest ist gleich dem Rest, den die iterierte Quersumme bei Division durch 3 lässt.
  • Bei Division durch 5: Der Rest ist gleich dem Rest, den die letzte Ziffer bei Division durch 5 lässt.
  • Bei Division durch 9: Der Rest ist gleich dem Rest, den die iterierte Quersumme bei Division durch 9 lässt.
  • Bei Division durch 10 (oder 100, 1000, …): Der Rest ist die letzte Ziffer (oder die beiden, drei … letzten Ziffern). Analoge Regeln gelten auch in anderen Stellenwertsystemen.

Ähnliche, wenn auch etwas kompliziertere Regeln existieren für etliche weitere Teiler.

Bei der Division mit Rest von einer ganzen Zahl durch eine ganze Zahl gibt es außer der anfangs angegebenen Hauptfassung insbesondere zwei Modifikationen. Alle drei Fassungen besagen, dass jeweils eindeutig bestimmte ganze Zahlen und existieren mit

und vorgegebenem Vorzeichen von Im Fall und ergeben sich aber derselbe Ganzzahlquotient und derselbe Rest und beide sind ebenfalls nichtnegativ.

Für den Rest schreibt man meist mit der entsprechenden Modulo-Funktion Es gilt genau dann, wenn durch teilbar ist.

(I) Rest ist nichtnegativ

[Bearbeiten | Quelltext bearbeiten]

Die zusätzliche Forderung führt auf die ganz oben angegebene Hauptfassung. In der Darstellung ist dabei der Summand das größte Vielfache von das kleiner oder gleich ist.

Bei geteilt durch beispielsweise findet man als größtes Vielfaches von das kleiner oder gleich ist, die Zahl (um kleiner), also

d. h. ergibt Rest Insbesondere ist

Berechnung des Ganzzahlquotienten

[Bearbeiten | Quelltext bearbeiten]

Die Bedingung an den Rest lässt sich umschreiben zur Bedingung

an Division durch ( ist die Signumfunktion) führt auf die äquivalente Ungleichungskette

und weiter auf

d. h. die (ganze) Zahl ist die größte ganze Zahl, die kleiner oder gleich ist. Der Ganzzahlquotient kann also bestimmt werden durch

mit der Abrundungsfunktion (Gaußklammer, Floor-Funktion). Der Rest ergibt sich dann durch

So erhält man für im letzten Beispiel erneut den Ganzzahlquotienten

und den Rest

(II) Rest hat Vorzeichen des Divisors

[Bearbeiten | Quelltext bearbeiten]

Gemeint ist hier die Forderung

Der Ganzzahlquotient kann dabei durch

berechnet werden, der Rest dann wieder durch

Die vorherige Division ergibt nun gemäß der Darstellung

jedoch Rest Das erhält man auch bei der Rechnung

und Hier ist also

(III) Rest hat Vorzeichen des Dividenden

[Bearbeiten | Quelltext bearbeiten]

Gemeint ist hier die Forderung

Der Ganzzahlquotient kann dabei durch

berechnet werden, der Rest dann wieder durch

Hier ergibt gemäß derselben Darstellung wie in (II) ebenfalls Rest Aber die Berechnung des Ganzzahlquotienten würde nun so verlaufen:

Implementierung in Computersystemen

[Bearbeiten | Quelltext bearbeiten]

DIV- und MOD-Befehle bzw. Operatoren (für ganzzahlige Division und Restbildung) sind in den meisten Programmiersprachen und Prozessoren implementiert.

Einige Programmiersprachen und Computeralgebrasysteme tragen der Vielfalt von Konventionen Rechnung, indem sie zwei Modulo- oder Rest-Operatoren zur Verfügung stellen. In der Programmiersprache Ada hat:

  • ( rem ) dasselbe Vorzeichen wie und einen Absolutbetrag kleiner als der von
  • ( mod ) dasselbe Vorzeichen wie und einen Absolutbetrag kleiner als der von

man erhält also den Rest gemäß (III) bzw. (II).

Es ist zu unterscheiden zwischen einer Modulo-Funktion (bei einem Rest ) und der Kongruenz modulo (einer Äquivalenzrelation in der Menge der ganzen Zahlen).

Modulo-Funktion

[Bearbeiten | Quelltext bearbeiten]

Modulo berechnet den Rest der Division geteilt durch . Man kann eine Funktion definieren, die jedem Zahlenpaar einen eindeutigen Teilerrest zuordnet. Diese nennt man Modulo (von lat. modulus, Kasus Ablativ, also: ‚(gemessen) mit dem (kleinen) Maß (des …)‘[1]) und kürzt sie meistens mit mod ab.

In Programmiersprachen, die B-Abkömmlinge sind, wie C oder Java, wird die Funktion durch % (Prozentzeichen) dargestellt und als Operator behandelt.[2] Frühe Programmiersprachen kannten den Operator mod noch nicht, nur den Datentyp des ganzzahligen Werts integer (abgekürzt INT); darum wurde der Divisionsrest nach der Formel errechnet und wegen der damaligen Rechenungenauigkeit beim Dividieren dann auf den ganzzahligen Wert gerundet.

Wir betrachten die Funktion

Die Gaußklammer bezeichnet die größte ganze Zahl, die nicht größer als die Zahl in der Gaußklammer ist, also, falls positiv, der ganze Anteil ohne die Nachkommastellen. Hier gilt stets
für alle
aber im Allgemeinen ist
z. B.
Ist positiv, so ist für alle

Neben dieser „mathematischen Variante“ wird oft auch eine ähnliche Funktion als Modulo bezeichnet, die für negative Argumente unterschiedliche Ergebnisse liefert und „symmetrische Variante“ genannt wird:

Dabei bezeichnet den zur Null hin gerundeten Quotienten , gegeben durch , wobei die Vorzeichenfunktion bezeichnet. Für diese Variante gilt
aber im Allgemeinen
z. B.
hat stets dasselbe Vorzeichen wie , oder es gilt .

Gilt und , so ergeben beide Varianten dasselbe Ergebnis. In Programmiersprachen ist die implementierte Variante nicht einheitlich. So verwenden Ruby, Perl, Python, Excel und der Rechner der Googlesuche die mathematische Variante, wohingegen C, Java, JavaScript und PHP die symmetrische einsetzen, was besonders wichtig bei Portierungen ist.

Steht in einer Sprache wie C(++) oder Java nur die symmetrische Variante zur Verfügung, kann man Ergebnisse nach der mathematischen Variante erhalten mit:

= ((a % m) + m) % m,

wobei % die symmetrische Modulooperation bezeichnet und die mathematische.

  • da („3 passt fünfmal in 17 und es bleiben 2 übrig“ – der Rest ist also 2)
  • da
  • da

Kongruenz bzgl. einem Modul

[Bearbeiten | Quelltext bearbeiten]

Zwei ganze Zahlen und haben bei Division durch eine ganze Zahl gemäß (I) genau dann denselben nichtnegativen Rest, wenn sie sich nur um ein Vielfaches von unterscheiden, d. h. wenn ihre Differenz durch teilbar ist. In diesem Fall heißt kongruent zu modulo in Zeichen oder auch bevorzugt dabei wird Modul genannt. Gebräuchlich ist zwar auch die Schreibweise ohne die Klammern, bei der aber mit der Modulo-Funktion verwechselt werden kann.

Damit gilt die Äquivalenz

wobei nur die beiden bei der linken Gleichung für die Modulo-Funktion stehen, und zwar für die zu (I) gehörige. Das gilt ebenso mit (II), jedoch nicht mit Fassung (III) der Division mit Rest.

Beispielsweise haben die beiden Zahlen und bei Division durch denselben nichtnegativen Rest:

Andererseits ist ihre Differenz durch teilbar, und somit sind sie auch zueinander kongruent modulo

Grundrechenarten modulo einer natürlichen Zahl

[Bearbeiten | Quelltext bearbeiten]

Ist die Zahl m eine Primzahl, so kann man die aus den reellen Zahlen gewohnten Grundrechenarten mit anschließender Modulo-Berechnung anwenden und erhält einen sogenannten endlichen Körper.

  • Modulo 3:
  • Modulo 5:

Verallgemeinerung: Reelle Zahlen

[Bearbeiten | Quelltext bearbeiten]

Sind und reelle Zahlen, ungleich 0, dann kann man eine Division " durch mit Rest" folgendermaßen definieren: Der ganzzahlige Quotient und der Rest im halboffenen Intervall sind diejenigen (eindeutig bestimmten) Zahlen, die die Gleichung erfüllen.

Auch hier gibt es die Alternativen, dem Rest dasselbe Vorzeichen wie zu geben oder den betragskleinsten Rest zu wählen. Letztere Alternative entspricht der Rundung: Die Division mit Rest von durch 1 liefert eine ganze Zahl und eine reelle Zahl mit Betrag kleiner oder gleich 1/2, die die Gleichung erfüllen. Die Zahl ist der auf ganze Zahlen gerundete Wert von .

Es ist zu beachten, dass hierbei der Quotient nicht aus derselben Menge (der reellen Zahlen) genommen wird wie Divisor und Dividend.

Bei der Division mit Rest für Polynome muss das als Divisor auftretende Polynom aus dem Polynomring (über , einem kommutativen Ring mit ) eine Voraussetzung erfüllen: Der Leitkoeffizient von muss eine Einheit von sein (insbes. ist nicht das Nullpolynom). Unter dieser Bedingung gibt es zu jedem eindeutig bestimmte Polynome mit

Dabei wird dem Nullpolynom ein kleinerer Grad als jedem anderen Polynom gegeben, beispielsweise .

Beispiel

Die Polynome und lassen sich durch Polynomdivision bestimmen.

Die Division mit Rest (Modulo) wird in der Programmierung relativ häufig verwendet. Der entsprechende Operator heißt in unterschiedlichen Programmiersprachen oft mod oder %. Man kann etwa prüfen, ob eine gegebene Zahl gerade ist, indem man folgende Abfrage durchführt: if a mod 2 == 0. Modulo kann man auch nutzen, wenn man in einer Schleife lediglich bei jedem -ten Schleifendurchlauf einen speziellen Programmcode ausführen will. Auch bei vielen Berechnungen und Algorithmen ist der Operator sinnvoll einsetzbar. Allgemein kann man mit mod prüfen, ob eine Zahl durch eine andere genau teilbar ist: Nur dann liefert der Modulo-Operator den Wert 0. Des Weiteren muss man in der Programmierung oft auf ganze Vielfache einer Zahl ergänzen (z. B. 4 Bytes) und kann durch den Modulo errechnen, wie viele „Pad-Bytes“ noch fehlen. Durch die Funktion divMod werden Ganzzahlquotient und Rest zusammen berechnet.

Beispiel
Man programmiert eine Uhr und hat die Zeit als Sekundenwert seit 0 Uhr gegeben. Dann kann man den Sekundenwert mod 3600 berechnen. Ist dieser gleich 0, so weiß man, dass eine volle Stunde angefangen hat. Diese Information kann man nutzen, um z. B. ein akustisches Signal (Gong zur vollen Stunde) auszulösen. Mit der Berechnung Sekundenwert mod 60 erhält man die Sekunden seit der letzten vollen Minute, die oftmals von Digitaluhren als letzte zwei Stellen angezeigt werden.

Wenn der Divisor eine Zweierpotenz ist, kann der Divisionsrest auch mit dem bitweisen Und-Operator (UND) berechnet werden. Denn dann ist . Mit dieser Operation erhält man die niedrigwertigsten Bits oder letzten Ziffern im Dualsystem.

Weitere Anwendungen

[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Siehe auch den Eintrag modulo im Wörterbuch Wiktionary.
  2. Ken Thompson: Users' Reference to B. Hrsg.: Bell Telephone Laboratories. 7. Januar 1972, S. 10 (englisch, bell-labs.com [PDF]).