Objective
Learning objectives
- Explain multiplying by -1 as a 180° rotation about zero, not a memorized sign-flip rule
- Explain multiplying by a negative number as rotation combined with scaling
- Compute and interpret absolute value as distance from zero, independent of sign
- Predict the sign and magnitude of a scaled value before computing it
Hook
Most people learn "a negative times a positive is negative, a negative times a negative is positive" as a rule to memorize — four cases, memorize the table, move on. That gets you the right answer, but it doesn't tell you why two negatives cancel out. What is multiplication by a negative number actually doing to a number, physically, that would make that true?
See it
Watch where the marked points land. Multiplying by 1 leaves them exactly where they are. Multiplying by -1 swings them 180° around zero — same distance from zero, opposite side. Multiplying by -2 does that same 180° swing, and also stretches them twice as far out. Nothing about this is a lookup table — it's one consistent geometric action: rotate by 180° if the factor is negative, and scale by the factor's distance from zero, either way.
This is why two negatives make a positive
If multiplying by -1 is a 180° rotation, multiplying by -1 twice is two 180° rotations back to back — 360° total, which is all the way back around to exactly where you started. That's the whole explanation for "negative times negative is positive": it was never a special case, it's the same one rotation rule applied twice.
Name it
A negative number is a number less than zero, written with a - sign. Geometrically, it lives on the opposite side of zero from the matching positive number, at the same distance.
That "same distance" idea has its own name: the absolute value of a number is its distance from zero, always written |n|, and always zero or positive — direction (sign) is thrown away, only distance survives.
print(abs(-7))
print(abs(7))
print(abs(0))
7
7
0
-7 and 7 sit on opposite sides of zero, but they're the same distance from it — that's exactly what abs() reports, and exactly what the rotating figure above showed: rotation changes which side a point is on, but never how far it is from zero. Magnitude (distance) and sign (side) are two separate pieces of information riding along together in every negative number.
Code it
A function that scales every number in a list by some factor — positive, negative, whatever — is the direct code version of what the figure showed:
def scale(values, factor):
return [v * factor for v in values]
numbers = [1, 2, 3, -4]
print(scale(numbers, 1))
print(scale(numbers, -1))
print(scale(numbers, -2))
[1, 2, 3, -4]
[-1, -2, -3, 4]
[-2, -4, -6, 8]
Look at the -4 in the original list specifically: multiplying by -1 sends it to 4 — it rotated across zero to the positive side, because it started negative. Sign isn't "whatever the input's sign was" — it's whatever side of zero the rotation lands you on, and that depends on both the input's side and the factor's side.
result = scale([10, -5, 2], -3)
print(result)
Each value rotates (because -3 is negative) and stretches to 3× its distance from zero. 10 (positive) rotates to the negative side and stretches: -30. -5 (already negative) rotates to the positive side and stretches: 15. 2 rotates and stretches to -6. Same rule, applied to three different starting signs, three different results — no case-by-case memorization required.
You multiply the number 5 by -1, then multiply that result by -1 again. Geometrically, what just happened?
5 × -1 = -5: one 180° rotation, now on the negative side. -5 × -1 = 5: a second 180° rotation, which lands back at the start. Two rotations of 180° is 360° — a full turn back to the original position. This is the geometric reason a double negative cancels, not a rule to separately remember.