¿Por qué 2 mod 4 = 2?

150

Me da vergüenza hacer una pregunta tan simple. Mi mandato no comienza durante dos semanas más, así que no puedo preguntarle a un profesor, y el suspenso me mataría.

¿Por qué 2 mod 4 = 2?

NewToThis
fuente
45
Debido 2 = 0 * 4 + 2.
p4bl0
1
En x / y los resultados consisten en una parte entera y una parte fracción. Si multiplicas la parte fraccionaria con el divisor, obtienes el resto. Y x = Parte entera y + Resto (es decir, Fracción parte y). En este caso Parte entera es 0, y el resto es 2.
mshsayem
76
Me alegra que hayas tenido el valor de hacer esa pregunta.
pavimentar
el módulo está muy lejos de ser igual a dividir dos números.
holex

Respuestas:

151

Mod solo significa que tomas el resto después de realizar la división. Como 4 entra en 2 cero veces, terminas con un resto de 2.

Jarsen
fuente
95

El módulo es el resto, no la división.

2 / 4 = 0R2
2 % 4 = 2

El signo %se usa a menudo para el operador de módulo, en lugar de la palabra mod.

Para x % 4obtener la siguiente tabla (para 1-10)

 x x%4
------
 1  1
 2  2
 3  3
 4  0
 5  1
 6  2
 7  3
 8  0
 9  1
10  2
Eric
fuente
18

Módulo (mod,%) es el operador restante.

2%2 = 0 (2/2 = 1 remainder 0)
1%2 = 1 (1/2 = 0 remainder 1)
4%2 = 0 (4/2 = 2 remainder 0)
5%2 = 1 (5/2 = 2 remainder 1)
Dan McClain
fuente
3
Y explicación "detallada": 2 = 4 · 0 + 2 ;-)
Michael Krelin - hacker
13

Mucho más fácil si usas plátanos y un grupo de personas.

Digamos que tiene 1 banana y un grupo de 6 personas, esto expresaría: 1 mod 6/ 1 % 6/ 1 modulo 6.

Necesitas 6 plátanos para que cada persona del grupo esté bien alimentada y feliz.

Entonces, si tiene 1 plátano y necesita compartirlo con 6 personas, pero solo puede compartirlo si tiene 1 plátano para cada miembro del grupo, es decir, 6 personas, entonces tendrá 1 plátano (el resto, no se comparte con nadie en grupo), lo mismo ocurre con 2 plátanos. Entonces tendrás 2 plátanos como resto (no se comparte nada).

Pero cuando obtienes 6 plátanos, entonces deberías estar feliz, porque entonces hay 1 plátano para cada miembro en el grupo de 6 personas, y el resto es 0 o no quedan plátanos cuando compartiste los 6 plátanos en 6 personas.

Ahora, para 7 plátanos y 6 personas en grupo, tendrás 7 mod 6 = 1esto, porque le diste a 6 personas 1 plátano cada uno, y 1 plátano es el resto.

Para 12 mod 6o 12 bananas compartidas en 6 personas, cada una tendrá dos bananas, y el resto será 0.

usuario3408091
fuente
8

2/4 = 0 con un resto de 2

Joe Doyle
fuente
8

También estaba confundido acerca de esto, solo hace unos minutos. Luego hice la división a mano en un pedazo de papel y tenía sentido:

  • 4 entra en 2 cero veces.
  • 4 veces 0 es 0.
  • Pones ese cero debajo del 2 y resta lo que deja 2.

Eso es lo más lejos que la computadora se va a llevar este problema. La computadora se detiene allí y devuelve el 2, lo que tiene sentido ya que eso es lo que está pidiendo "%" (mod).

Hemos sido entrenados para poner el decimal y seguir adelante, por lo que esto puede ser contradictorio al principio.

skillit zimberg
fuente
7

Alguien me contactó y me pidió que explicara con más detalles mi respuesta en el comentario de la pregunta. Entonces, esto es lo que le respondí a esa persona en caso de que pueda ayudar a alguien más:

La operación de módulo le proporciona el resto de la división euclidiana (que solo funciona con números enteros, no reales). Si tiene A tal que A = B * C + D (con D <B), entonces el cociente de la división euclidiana de A por B es C, y el resto es D. Si divide 2 por 4, el cociente es 0 y el resto es 2.

Supongamos que tiene objetos A (que no puede cortar). Y desea distribuir la misma cantidad de esos objetos a las personas B. Mientras tengas más de B objetos, le das 1 a cada uno de ellos y repites. Cuando te quedan menos de B objetos, te detienes y mantienes los objetos restantes. El número de veces que repite la operación, llamemos a ese número C, es el cociente. El número de objetos que conserva al final, llamémoslo D, es el resto.

Si tienes 2 objetos y 4 personas. Ya tienes menos de 4 objetos. Entonces cada persona obtiene 0 objetos, y usted conserva 2.

Es por eso que 2 módulo 4 es 2.

p4bl0
fuente
5

El operador de módulo evalúa el resto de la división de los dos operandos enteros. Aquí están algunos ejemplos:

23 % 10 evaluates to 3 (because 23/10 is 2 with a remainder of 3)
50 % 50 evaluates to 0 (50/50 is 1 with a remainder of 0)
9 % 100 evaluates to 9 (9/100 is 0 with a remainder of 9)
Cárdenas
fuente
4

mod significa el recordatorio cuando se divide por. Entonces 2 dividido por 4 es 0 con 2 restantes. Por lo tanto, 2 mod 4 es 2.

DaveJohnston
fuente
4

El módulo es el resto, expresado como un entero, de una expresión de división matemática.

Entonces, supongamos que tiene un píxel en una pantalla en la posición 90 donde la pantalla tiene 100 píxeles de ancho y agrega 20, se ajustará a la posición 10. ¿Por qué ... porque 90 + 20 = 110, por lo tanto, 110% 100 = 10.

Para que lo entienda, considero que el módulo es la representación entera del número fraccionario. Además, si hace la expresión al revés y procesa el resto como un número fraccionario y luego se agrega al divisor, le dará su respuesta original.

Ejemplos:

    100
(A) ---  =  14 mod 2
     7

    123
(B) ---  =  8 mod 3
     15

     3
(C) ---  =  0 mod 3
     4

Invertido diseñado para:

                        2      14(7)    2       98    2     100
 (A) 14 mod 2  =  14 + ---  =  ----- + ---  =  --- + ---  = ---
                        7        7      7       7     7      7

                      3      8(15)    3      120    3      123
 (B) 8 mod 3  =  8 + ---  =  ----- + ---  =  --- + ---  =  ---
                      15       15     15      15    15      15

                      3       3
 (B) 0 mod 3  =  0 + ---  =  ---
                      4       4
Kris Kizlyk
fuente
2

Cuando divide 2 por 4, obtiene 0 con 2 sobrantes o restantes. El módulo es solo el resto después de dividir el número.

jocopa3
fuente
1

Creo que te estás confundiendo sobre cómo se lee la ecuación del módulo.

Cuando escribimos una ecuación de división tal como 2/4estamos dividiendo 2 por 4.

Cuando se escribe una ecuación de módulo tal como 2 % 4estamos dividiendo 2 by 4(piense 2 sobre 4) y devolviendo el resto.

Kevin Bowersox
fuente
1

MOD es el operador restante. Es por eso que 2 mod 4 da 2 como resto. 4 * 0 = 0 y luego 2-0 = 2. Para que quede más claro, intente hacer lo mismo con 6 mod 4 u 8 mod 3.

Aamir kamaal
fuente
1

Este es el algoritmo de Euclides.

p.ej

a mod b = k * b + c => a mod b = c, donde k es un número entero y c es la respuesta

4 mod 2 = 2 * 2 + 0 => 4 mod 2 = 0

27 mod 5 = 5 * 5 + 2 => 27 mod 5 = 2

entonces tu respuesta es

2 mod 4 = 0 * 4 + 2 => 2 mod 4 = 2

Mergim Rama
fuente
1

Por:

2 mod 4

Podemos usar esta pequeña fórmula que se me ocurrió después de pensar un poco, tal vez ya está definida en algún lugar que no conozco pero funciona para mí, y es realmente útil.

A mod B = C donde C es la respuesta

K * B - A = |C| donde K es cuántas veces B cabe en A

2 mod 4 sería:

0 * 4 - 2 = |C|

C = |-2| => 2

Espero que funcione para ti :)

Daniel Sibaja
fuente
1

La operación de mod funciona con recordatorio.

Esto se llama aritmética modular.

 a==b(mod m) 
 then m|(a-b)
 a-b=km 
 a=b+km
 So, 2=2+0*4
Raju
fuente
1

Para responder un módulo x % y, hace dos preguntas:

A- ¿Cuántas veces yentra xsin remanente? Para 2% 4 eso es 0.

B- ¿Cuánto necesitas agregar para volver a eso x? Para volver de 0 a 2, necesitará 2-0, es decir, 2.

Estos se pueden resumir en una pregunta como esta: ¿Cuánto necesitará agregar al resultado entero de la división de xby ypara volver a x?

Por entero se entiende solo números enteros y no fracciones de interés.

Un resto de división fraccional (por ejemplo, .283849) no es de interés en el módulo porque el módulo solo trata con números enteros.

eleg
fuente
0

Para una forma visual de pensarlo, imagina una esfera del reloj que, en tu ejemplo particular, solo va a 4 en lugar de 12. Si comienzas a las 4 en el reloj (que es como comenzar en cero) y gíralo en sentido horario para 2 "horas", aterrizas en 2, al igual que dar la vuelta en sentido horario durante 6 "horas" también te aterrizaría en 2 (6 mod 4 == 2 al igual que 2 mod 4 == 2).

Luego
fuente
66
Eso es realmente bastante confuso.
Joe Phillips el
@ do3boy: la idea de la esfera del reloj es un método muy simple y sencillo para describir exactamente el hecho del módulo. excepto que hubiera sido más fácil usar el formato de 24 horas para explicarlo en lugar de modificar el número de posiciones disponibles.
Atmocreations
0

Este podría ser un buen momento para mencionar la función modr (). Devuelve tanto el conjunto como el resto de una división.

print("\n 17 // 3 =",17//3," # Does the same thing as int(17/3)")
print(" 17 %  3 =",17%3," # Modulo division gives the remainder.")
whole, remain = divmod(17,3)
print(" divmod(17,3) returns ->",divmod(17,3),end="")
print(" because 3 goes into 17,",whole,"times with a remainder of",remain,end=".\n\n")
usuario10637953
fuente