Modulo?
Ist -3%7 = -1
oder ist es 4?
Bitte auch eine Erklärung warum -1 oder 4 ist oder hängt es vom Kontext ab?
danke!
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].
Das hängt von der verwendeten Definition ab.