Modulorechnung mit negativen Zahlen?

...komplette Frage anzeigen

3 Antworten

Bei 990 mod 57 bleibt ein Rest von 21, ergo bei -990 ein Rest von -21. Der Repräsentant wird aber meist gerne positiv gewählt. Der nächste ist -21 + 57 = 36.

-990 = -17 * 57 -21 = -16 * 57 +36

Aber -16 * 57 + 36 ist -876... Du meinst -18 * 57 + 36. So wird aber das mod nicht berechnet. Das ist falsch und wäre im Gegenteil sogar fatal, wenn Computersysteme so rechnen würden.

1
@ohwehohach

Er hat halt in die falsche Richtung das Ergebnis abgewandelt. Richtig wäre dann -18*57+36

1
@Suboptimierer

Zum einen gibt es offensichtlich einen Unterschied, ob ich bei Google -990 mod 57 eingebe (36) oder im SQL-Server oder in einem C# Testprogramm (beide -21). Mit fatal meine ich, dass es nicht sein kann, dass es hierzu offensichtlich 2 unterschiedliche Definitionen gibt, welche zu unterschiedlichen Ergebnissen führen (man denke an Algorithmen zu Verschlüsselung, wo es auf Modulo-Rechnung ankommt).

Die Definition, die ich kenne (und nach der offensichtlich C# und auch der SQL-Server rechnen, sowie auch die diversen Taschenrechner, auf denen ich das gerade probiert habe) ist: Modulo ist der Rest einer ganzzahligen Division von x durch y.

Daher gilt:

-990 : 57 = -17,3 => -990 = -17 * 57 + r = -969 + r => r = -21

0
@ohwehohach

Also rechnet Google falsch? o.O

Verschlüsselungsalgorithmen arbeiten i. d. R. nicht mit negativen Zahlen. Da stellt sich das Problem gar nicht.

Die Aussage, dass 36 als Ergebnis falsch ist, ist jedenfalls definitiv falsch. 36 ist genauso Repräsentant der Restwertklasse wie -21.

1

Aus meiner Sicht ist das Lösungsblatt falsch. Eigentlich müsste 21 rauskommen.

Die Modulo-Operation berechnet hat, welcher Rest bleibt, wenn man eine Zahl ganzzahlig durch eine andere dividiert.

Nimm mal nur positive Zahlen: 990 mod 57 ist 21, denn x * 57 + 21 = 990, wobei x = 17.

Das gleiche gilt im Negativen: -990 mod 57 ist -21, denn x * 57 - 21 = -990, wobei x = -17.


Ich habe diese Lösung übrigens mit drei Taschenrechnern und einem Datenbankmanagementsystem geprüft (und es wäre fatal, wenn das falsch rechnen würde): Meine Lösung stimmt :-)

Können nicht beide Lösungen richtig sein? ;)

0

Die meisten Taschenrechner rechnen statt "modulo" den "Rest" aus, weil das oft sinnvoller ist, aber manchmal einfach nur falsch - kommt drauf an was man will.

PS: Kannst in google eingeben "-990 mod 57" ;)

Was möchtest Du wissen?