x MOD y
-
wie kommst Du jetzt dadrauf?
Vielleicht solltest Du die 1 auch dritteln?
-
ich verstehs einfach nicht
[ Dieser Beitrag wurde am 12.04.2003 um 19:42 Uhr von Gary editiert. ]
-
Ich verstehe Gary da durchaus, denn 5 = 1*3 + 2. Deshalb ist 5/3 = 1 und 5%3 = 2. Es gibt für eine solche Darstellung für die 5 durch die 3 nur EINE Möglichkeit (mit einem Rest <5). Wenn man jetzt auch noch negative Zahlen so darstellen will, dann gibt es 2 Möglichkeiten. Für unser Beispiel wären das:
-5 = (-2) * 3 + 1 -5 = (-1) * 3 - 2
Da wir uns jetzt ja wohl alle einig sind, dass (-5)/3 = -1, wäre eigentlich die zweite Darstellung naheliegend. Wenn man nun den Rest als stets positiv (oder 0) definiert, dann muss man diese beiden Darstellungen "zusammenwürfeln". Aber was soll's... mir isses egal. Ist alles eine Frage der Definition.
-
-5 Mod 3 ist 1, denn
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 (x mod 3=1)-5 mod 3 kann nur 1 sein , sonnst musste sich bei 0 die Reihenfolge ändern)
c++ macht es möglicherweise anders
-
So ist die Zuordnung besser zu sehen
(x) (x mod 3)
. .
. .
-10 2
-9 0
-8 1
-7 2
-6 0
-5 1 !
-4 2
-3 0
-2 1
-1 2
0 0
1 1
2 2
3 0
4 1
5 2
6 0
7 1
8 2
9 0
10 1
. .
. .
. .
-
Danke Leute.
Jetzt ists klarer.
-
Original erstellt von <MisterX>:
sonnst musste sich bei 0 die Reihenfolge ändernNa und? Was ist denn gegen
(x) (x mod 3) . . . . -10 -1 -9 0 -8 -2 -7 -1 -6 0 -5 -2 -4 -1 -3 0 -2 -2 -1 -1 0 0 1 1 2 2 3 0 4 1 5 2 6 0 7 1 8 2 9 0 10 1 . . . . . .
zu sagen? Wie gesagt: Ist alles Definitionssache!
[ Dieser Beitrag wurde am 15.04.2003 um 02:46 Uhr von WebFritzi editiert. ]
-
Es ist etwas gegen -x als Ergebnis zu sagen, weil modulo (mathematisch) so def. ist, dass es keine negativen Elemente geben darf!
Das Rechnen mit dieser Struktur beruht daruaf, dass die Körperaxiome erfüllt sind!
Ohne diese Axiome würde z.B. dies nicht möglich sein:
(k mod p) + (l mod p) = (k+l) mod p
(k mod p) * (l mod p) = (k*l) mod pDenn sei ( k mod p) = [r] und (l mod p) =[s], dann gibt es a,b Element Z
mit k=a*p+r, l=b*p+s Also:k+l=(a+b)p +(r+s)
k*l=(a*b*p+a*s+b*r)*p+r*sAlso haben k+l und r+s sowie k*l und r*s denselben Rest bei der Division durch p.
Statt mit r und s können wir also mit k und l rechnen.
Aber nur, wenn man KEINE negativen Zahlen als Ergebnis zulässt!ps. Sollte ich einen Fehler eingebaut haben , bitte schreiben!
-
Also ein x86 Prozessor scheint ebenfalls 2 als Lösung für 5 MOD -3 als richtig anzusehen. Hier ein wenig Code:
mov eax,5 cdq mov ecx,-3 idiv
Danach ist EAX gleich -1 (Ergebnis) und EDX ist gleich 2 (Rest). Und noch ein Zitat: "The sign of the remainder is always the same as the sign of the dividend" (aus: "Intel Pentium Instruction Set Reference", bei der Beschreibung der IDIV Instruktion).
-
Das heißt ja, ich hatte recht.
-
[ Dieser Beitrag wurde am 22.04.2003 um 19:15 Uhr von elise editiert. ]
-
sorry elise das kommt davon wenn man vergißt sich umzumelden ...
Gary: Nö, es ging ja ursprünglich um -5 mod 3, nicht 5 mod -3 :p
Außerdem ist es fraglich, ob der IDIV-Befehl wirklich modulo rechnet, in der Befehlsbeschreibung steht ja "remainder", also Rest (nein das ist nicht das gleiche)
-
worin liegt denn der Unterschied zwischen REM und MOD?
-
Original erstellt von <MisterX>:
**Das Rechnen mit dieser Struktur beruht daruaf, dass die Körperaxiome erfüllt sind!Ohne diese Axiome würde z.B. dies nicht möglich sein:
(k mod p) + (l mod p) = (k+l) mod p
***lol* Das ist nicht dein Ernst, oder? Bis hierhin habe ich gelesen, aber nicht weiter. Da redest du von Körperaxiomen und schreibst so einen Müll. Das disqualifiziert dich, mein Junge! Setz mal p = 8, k = 15 und l = 14. Aha, nach deinem Gesetz wäre dann 7 + 6 = 5. Uiuiui. Allerdings stimmt das "Gesetz":
((k mod p) + (l mod p)) mod p = (k+l) mod p
Dieses wäre aber bei unserer Definition des Modulo-Operators (obige Aufgabe: -2) gültig.
-
Wo ist das Problem bei 7+6=5? Modulo 8 stimmt das doch... funktioniert also.
Aber abgesehen davon: Warum geben wir uns so viel Mühe nachzuweisen, daß die Verknüpfung _repäsentantenunabhängig_ ist, wir also einen beliebigen Vertreter der Nebenklasse auswählen können, um danach darüber zu streiten welchen wir nehmen.
Ob wir das Kind jetzt 2 oder -1 nennen, in Z/3Z ist es dasselbe. Und da modulo n rechnen rechnen in Z/nZ bedeutet ist es auch wurscht, ob wir Vorzeichen zulassen oder nicht. Ich persönlich mag's lieber ohne Vorzeichen, aber das ist *reine* Geschmacksache.
-
@Jester: welches Semester := S?
Wenn S>4: hast du Zahlentheorie oder Algebra und was noch?
-
S=4
Schreibe morgen Algebra I
Keine Zahlentheorie und auch sonst nix wirklich tiefergehendes gehört bis jetzt
-
@Bashar: Also da musst du mir mal den Unterschied zwischen Rest und Modulo erklären. Ich dachte immer Modulo sei so definiert, dass es den Rest einer Division zurückgibt.
-
-
malfunction:
ich kenne die genaue Definition nicht, ich würde aber sagen, dass es bei modulo darauf ankommt, dass für positive y gilt: 0 <= x mod y < y, weil alle x auf ihre Restklasse mod y abgebildet werden. Ich halte mich ansonsten an die Definitionen aus Common Lisp und Ada:
(mod x y) und (rem x y)
bzw. x mod y und x rem yIn beiden Sprachen hat das Ergebnis von mod das Vorzeichen von y, und rem das Vorzeichen von x. Für x und y > 0 fallen sie zusammen. Wenn jemand andere Definitionen kennt, die dem widersprechen oder es unterstützen, nur her damit.