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?
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?
Respuestas:
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)
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 = 1
esto, porque le diste a 6 personas 1 plátano cada uno, y 1 plátano es el resto.
Para 12 mod 6
o 12 bananas compartidas en 6 personas, cada una tendrá dos bananas, y el resto será 0.
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:
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.
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.
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)
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.
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
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/4
estamos dividiendo 2 por 4.
Cuando se escribe una ecuación de módulo tal como 2 % 4
estamos dividiendo 2 by 4
(piense 2 sobre 4) y devolviendo el resto.
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.
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
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 :)
Para responder un módulo x % y
, hace dos preguntas:
A- ¿Cuántas veces y
entra x
sin 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 x
by y
para 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.
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).
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")
2 = 0 * 4 + 2
.