bob gailer wrote:
On 1/10/2012 1:47 PM, Noah Hall wrote:
a % b is the remainder operator. It returns what's "left" after
dividing a by b.
Not to beat a dead horse- but % is the modulo operator.
That depends on how you define "remainder" and "modulo". There is no
definition agreed on by all people, and so we get into terminology disputes.
To a mathematician, "modulo operator" is meaningless. Modulo is a modifier to
a statement, not an operator, and is written "mod" as in:
1 = 5*3 mod 7
It returns the residue class of the 2 operands. When a is positive this
is the same as remainder, but not so for negative a.
"Remainder" is ambiguous for negative values. -7/5 could be given as -1 with
-2 remainder, or as -2 with 3 remainder. One might define a remainder
operation as returning a result:
- which is always positive
- with the sign of the divisor
- with the sign of the dividend
- which is closest to zero
- which is furthest away from zero
The last two require further variations, depending on how you resolve ties.
One might also define i%0 to be i, or as undefined. So by my count, there are
at least 18 consistent ways to define a remainder/modulo operator.
A very few languages define two operators, or functions, e.g. Ada defines a
rem operator which returns the remainder with the sign of the dividend and a
mod operator which returns the remainder with the sign of the operator.
--
Steven
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor