Modulo?


24.01.2025, 15:21

Ich meine die Möglichkeiten -3 oder 4. Nicht -1 oder 4

3 Antworten

Bitte auch eine Erklärung warum [-3] oder 4 ist oder hängt es vom Kontext ab?

Es hängt vom Kontext ab.

Das kommt etwas darauf an, wie der %-Operator im konkreten Fall definiert ist. Es gibt beide Varianten, welche beispielsweise im Wikipedia-Artikel...

https://de.wikipedia.org/wiki/Division_mit_Rest#Modulo

... als „mathematische Variante“ einerseits und als „symmetrische Variante“ andererseits bezeichnet werden.

====== „Mathematische Variante“ ======

Ich wäre jetzt spontan eher von der „mathematischen Variante“ ausgehen. Dabei ist a % b so definiert, dass immer 0 ≤ a % b < b ist. Im konkreten Fall ist also mit (-3) % 7 dann die Zahl 4 gemeint, nicht die Zahl -3.

Diese Variante wird beispielsweise auch in der Programmiersprache Python verwendet.

[Bemerkung: Selbst wenn die „mathematische Variante“ gemeint sein sollte, wäre aber gegebenenfalls noch zu klären, ob mit „-3 % 7“ nun (-3) % 7 oder -(3 % 7) gemeint ist. In der Regel wird wohl (-3) % 7 gemeint sein, aber theoretisch könnte auch -(3 % 7) gemeint sein, wobei dann auch bei der mathematischen Variante dann -3 % 7 = -(3 % 7) = -(3) = -3 statt 4 wäre.]

====== „Symmetrische Variante“ ======

Bei der „symmetrischen Variante“ kann das Ergebnis hingegen auch negativ sein. Da wäre beispielsweise (-3) % 7 gleich -3.

Diese Variante wird beispielsweise auch in den Programmiersprachen C++, Rust, ECMAScript und vielen anderen verwendet.

-3 = -3 + 7 = 4 (mod 7)

Und das hängt auch nicht vom Kontext ab - nach Konvention wählt man jedoch für eine natürliche Zahl m>1 meist das Repräsentanten-System [0], [1],…,[m-1].

Woher ich das weiß:Studium / Ausbildung – Dr. rer. nat. Analytische & Algebraische Zahlentheorie

Das hängt von der verwendeten Definition ab.