steve at pearwood.info
Mon Oct 8 01:12:06 CEST 2012
Hello Esteban and welcome!
On 08/10/12 09:49, Esteban Izaguirre wrote:
> So, i undertand
> how modulo works when only positive numbers are used, but how does modulo
> determine, that, say -15 % 14 is equal to 13?
Think of modulo as almost exactly the same as "remainder after division".
When you say "17 % 5", 5 goes into 17 three times with remainder two, so
17 % 5 returns 2.
With negative numbers it works the same way, but with a twist: we could say
a) 5 goes into -17 negative-three times with remainder negative-two;
b) 5 goes into -17 negative-four times with remainder three.
Why? Because we can write either of these:
5*-3 + -2 = -17
5*-4 + 3 = -17
So we have a choice. In Python's case, the people who invented the language
chose the second one, b). That way the modulo is always positive or zero
and never negative, which is a useful thing to have.
So, back to your two examples:
-2*14 + 13 = -15
so fourteen goes into negative-fifteen -2 times, with 13 remaining.
-20 % 100 is 80, not 20 like you said:
-1*100 + 80 = -20
so 100 goes into negative-twenty -1 times, with 80 remaining.
Or -20 % 100 is 20? I just
> don't get how modulo works, all explanations I've found online only seem to
> be in relation of how this applies to perl or something, can someone
> explain it to me?
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
More information about the Tutor