modulus

Understanding The Modulus Operator %


I understand the Modulus operator in terms of the following expression:

7 % 5

This would return 2 due to the fact that 5 goes into 7 once and then gives the 2 that is left over, however my confusion comes when you reverse this statement to read:

5 % 7

This gives me the value of 5 which confuses me slightly. Although the whole of 7 doesn't go into 5, part of it does so why is there either no remainder or a remainder of positive or negative 2?

If it is calculating the value of 5 based on the fact that 7 doesn't go into 5 at all why is the remainder then not 7 instead of 5?

I feel like there is something I'm missing here in my understanding of the modulus operator.


Solution

  • (This explanation is only for positive numbers since it depends on the language otherwise)

    Definition

    The Modulus is the remainder of the euclidean division of one number by another. % is called the modulo operation.

    For instance, 9 divided by 4 equals 2 but it remains 1. Here, 9 / 4 = 2 and 9 % 4 = 1.

    Euclidean Division

    In your example: 5 divided by 7 gives 0 but it remains 5 (5 % 7 == 5).

    Calculation

    The modulo operation can be calculated using this equation:

    a % b = a - floor(a / b) * b
    

    Applied to the last example, this gives:

    5 % 7 = 5 - floor(5 / 7) * 7 = 5
    

    Modular Arithmetic

    That said, your intuition was that it could be -2 and not 5. Actually, in modular arithmetic, -2 = 5 (mod 7) because it exists k in Z such that 7k - 2 = 5.

    You may not have learned modular arithmetic, but you have probably used angles and know that -90° is the same as 270° because it is modulo 360. It's similar, it wraps! So take a circle, and say that its perimeter is 7. Then you read where is 5. And if you try with 10, it should be at 3 because 10 % 7 is 3.