Modulo-Problem?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
TeddyRuxpin
User
Beiträge: 2
Registriert: Mittwoch 25. August 2010, 10:58

Hallo! Ich bin neu im Forum, beschäftige mich schon länger mit Python, aber ncoh nich tso intensiv.

Mir ist ein Problem aufgefallen, da wollte ich fragen, ob das vielleicht an der Python-Version liegt oder ob das bei euch so auch auftritt, oder ob ich da einen Denkfehler habe?

Es geht um die Funktion divmod()

Wenn ich

Code: Alles auswählen

divmod(3,2)
eingebe, bekomme ich richtigerweise 1, 1 zurück.

Wenn ich aber

Code: Alles auswählen

divmod(2,3)
eingebe, bekomme ich 0, 2 zurück.
Dies ist jedoch, wenn man nachrechnet, nicht korrekt. Die Ganzzahl stimmt, die 3 passt in die 2 genau 0 Mal rein.
Doch der Rest, der bleibt, ist eigentlich 3, und nicht 2. Oder?

Ist da mit der Version irgendwas nicht in Ordnung, oder sieht das divmod(a,b) vor, dass wenn a < b, dass dann ein nicht erwartetes Ergebnis kommt? Oder denke ich da irgendwie verkehrt?

Danke im Voraus.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Willkommen im Forum!
TeddyRuxpin hat geschrieben:Dies ist jedoch, wenn man nachrechnet, nicht korrekt. Die Ganzzahl stimmt, die 3 passt in die 2 genau 0 Mal rein.
Doch der Rest, der bleibt, ist eigentlich 3, und nicht 2. Oder?
Doch das stimmt. Der Rest kann nicht groesser sein als die Zahl selbst.
help(divmod) hat geschrieben:divmod(...)
divmod(x, y) -> (div, mod)

Return the tuple ((x-x%y)/y, x%y). Invariant: div*y + mod == x.
TeddyRuxpin
User
Beiträge: 2
Registriert: Mittwoch 25. August 2010, 10:58

Doch das stimmt. Der Rest kann nicht groesser sein als die Zahl selbst.
Achja, ohje.. ich hatte den Denkfehler in der Vorstellung des Rests. Danke! *verwirrt guck*
Antworten