Skip to Content
DProgrammieren 2Rest mit Modulo

Was übrig bleibt: Modulo

Heutzutage würden Sie wohl sagen 6÷56 \div 5 gibt 65\frac{6}{5}, 1 151\ \frac{1}{5}, oder 1.2. Aber in der Primarschule haben Sie dividieren zuerst anders gelernt: Wenn Sie 6 Äpfel auf 5 Personen aufteilen müssten, hätten Sie gesagt, dass jede Person einen Apfel erhält und ein Apfel übrig bleibt. Kurz: 6÷5=1 Rest 16 \div 5 = 1 \text{ Rest } 1 .

In der Mathematik gibt es eine Operation, die diesen Rest einer Divison produziert: den Modulo. Einige Beispiele:

  • 6mod(5)=16 \mod(5) = 1
  • 7mod(5)=27 \mod(5) = 2
  • 14mod(5)=414 \mod(5) = 4
  • 8mod(4)=08 \mod(4) = 0
  • 9mod(2)=19 \mod(2) = 1
  • 89mod(10)=989 \mod(10) = 9
  • 100mod(10)=0100 \mod(10) = 0

In der Mathematik sehen Sie das vielleicht auch ohne Klammern geschrieben. Wichtig für die Informatik: In Python ist der “Modulo”-Operator %.

Loading...
Run

Überlegen wir uns, wie sich der Modulo verhält. Stellen wir uns hierzu eine Funktion f(x)=xmod(5)f(x) = x \mod(5) vor, also eine Funktion, die für alle xx den Rest der Division durch 55 berechnet. Was für Zahlen kommen da raus?

Loading...
Run

Sie sehen, der Modulo wiederholt periodisch immer wieder die gleichen Werte. Wenn Sie f(x)=xmod(5)f(x) = x \mod(5) als Graphen zeichnen würde, sähe das so aus:

An Excalidraw image (light theme)

Im Alltag treffen Sie den Modulo immer an, wenn Sie eine analoge Uhr anschauen. Denn eine analoge Uhr ist eigentlich nichts anderes als eine Visualisierung des Modulo 12. Wenn es 9 Uhr ist und Sie 4 Stunden später schauen, ist es 1 Uhr. Mathematisch gesprochen: (9+4)mod(12)=1(9 + 4) \mod(12) = 1.

modulo_clock.svg

Die Rechenoperationen mit Modulo werden in der Mathematik in der “modularen Arithmetik” untersucht. Dieses Feld ist in der Informatik speziell im Bereich der Kryptographie von Bedeutung.

Der normale Modulo ist beim Programmieren oft hilfreich, um z.B. eine Liste von Elementen zyklisch zu durchlaufen. Wenn Sie z.B. das Alphabet durchlaufen wollen, möchten Sie nach “Z” wahrscheinlich wieder bei “A” anfangen. Das würden Sie mit der ASCII-Tabelle und dem Modulo erreichen. Genauere Informationen dazu finden Sie im Kapitel zur Caesar-Verschlüsselung.

Last updated on