I'm messing with the modulo operation in python and I understand that it will spit back what the remainder is.
But what if the first number is smaller than the second?
for instance
2 % 5 the answer is 2.
How does that work?
2/5 = .4
I'm messing with the modulo operation in python and I understand that it will spit back what the remainder is.
But what if the first number is smaller than the second?
for instance
2 % 5 the answer is 2.
How does that work?
2/5 = .4
Does this help
22 % 5 = 2
17 % 5 = 2
12 % 5 = 2
7 % 5 = 2
2 % 5 = 2
Maybe this
22 / 5 = 4 + 2/5
17 / 5 = 3 + 2/5
12 / 5 = 2 + 2/5
7 / 5 = 1 + 2/5
2 / 5 = 0 + 2/5
5 goes into 2 zero times.
5*0 = 0
2-0 = 2.
The answer is 2.
2 divided by 5 (integer division) is 0 with a remainder of 2.
It's really supper easy to figure out the results of modulo when the first number is smaller. The result is always equal the the first (smaller) number
3 % 5 = 3
5 % 10 = 5
78 % 112 = 78
Try it out for yourself.
If the first number is smaller, then the answer is that first number again.
Because the second number is larger, it 'goes into' the first number zero times and the remainder is the entirety of this first number.
edit: revisiting this thread, I had to remember what this operator was for. I referred to this other thread here:
for instance 2 % 5 the answer is 2. How does that work? 2/5 = .4!
Modulo inherently produces an integer result, whereas division can be an integer or floating point operation. Your observation that 2/5 equals 0.4 indicates you're thinking in terms of floating point. In that case, the .4 itself is the remainder, expressed differently. The integral portion of "0.4" is the "0" and the remainder portion is ".4". The remainder of an integer division operation is exactly the same thing as the fractional (or "decimal", in colloquial terms) portion of a floating point operation, just expressed differently.
The fractional part of your example, 0.4, can be expressed as 0.4 or as 2/5 (two fifths); either way it's the same thing. Note that when it's written as 2/5, the denominator (divisor) of the fractional part is the same as the denominator (divisor) of the original problem, while the numerator (dividend) of the fractional part is what is referred to as the "remainder" in integer division. Any way you look at it, the fractional part of the quotient and the remainder represent the same thing (the portion of the dividend that cannot be evenly divided by the divisor), just expressed differently.
You can think of it as 2 / 5 = 0 with a remainder of 2 of 5.
a % b = a if a << b
0 < a < b
... if a
is negative then you're in trouble. –
Woodcock The numerator in the remainder is your modulo answer, no matter what, whether the numerator is bigger or smaller than the denominator.
12 % 5 = 2 , because 12 / 5 = 2 and **2**/5
9 % 2 = 1 , because 9 / 2 = 4 and **1**/2
This may make more sense.
5 % 89 = 5 , because 5 / 89 = 0 and **5**/89
5 % 365 = 5 , because 5 / 365 = 0 and **5**/365
5 % 6 = 5 , because 5 / 6 = 0 and **5**/6
a%b = a/b=c,
c*b=d,
a-d=modulo;
This is it what python does while mod two numbers or so i think. The modulo between a smaller number and a bigger number will always be the smaller number.
Another thing to note was that if the first number (a) is a negative number, the answer is always the difference of the second number to the first number (n-a).
Example: a % n
If both numbers were negative, the answer will always be a negative number which is equal to the smaller number.
Just as a follow up for us non-math-brain people out there, I think part of the problem in understanding this is that the concept is often simplified as "what's left over when you divide x by y", which, when x is smaller, is nothing, aka 0. I more fail proof way might be to say
So in 2 (as x) % 5 (as y):
MOD doesnt work with decimal... MOD(A,B) u want result where A
There's no number that would multiply 5
to get you closer to 2
.
In other words x
has to be 0
to satisfy the equation: 5*x + r = 2
.
To understand modular arithmetic, I suggest you go over to Khan Academy and read their post about it. They also have interactive practice questions on the same page. Here's the link: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
In short:
Use the following equation:
A = BQ + R
A is the dividend
B is the divisor
Q is the quotient
R is the remainder, and is the result for a modulo.
Q = (A/B)
Keep in mind that Q always goes to the closest smallest integer. So if Q = 0.2, then Q = 0.0. If Q = -1.2, then Q = -2.0.
If Q doesn't have decimals then your final answer is 0 (R = 0).
For your question:
Q = (2/5) = 0.4, so Q = 0.
Plug that into 'A = BQ + R':
2 = 5*0 + R
So, R = 2.
Hope this helps. As I said you can read more about on Khan Academy. Here's the link: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
In case i.e. 2%5 = 2: In real math remainder is 0 and quotient is 0.4 but in programming, it see 2 is less than 5 means 5*1=5, so it go low and just divide it by 0 so it become less which is 0. Hence remainder become 2 because 2-0=2 ;)
Example: a % n
[^ Actually for this part depend on the programming language itself, no.1 it can be either 2 or -5 bypass the negative sign, or no.2 can be either -5 or 4]
@aldennis
Modulo works by giving the remainder after division, one thing it's useful for is
-Finding if a number is even or not
Code sample:
// 4 % 2 means "2 divided by 2 is what, and what is the remainder? if I have a remainder, return it or else return 0"
if(4 % 2 == 0) {
alert("2 is even");
} else {
alert("2 is odd");
}
So if 4 % 2 has a remainder of 0, it's even or else it's odd.
© 2022 - 2024 — McMap. All rights reserved.
12 % 5 = 2
because5 x 2 = 10
and12 - 10 = 2
– Quiescent2 % 5 = 2
because5 x 0 = 0
and2 - 0 = 2
– Quiescent