Respuestas:
El resultado de una división de módulo es el resto de una división entera de los números dados.
Eso significa:
27 / 16 = 1, remainder 11
=> 27 mod 16 = 11
Otros ejemplos:
30 / 3 = 10, remainder 0
=> 30 mod 3 = 0
35 / 3 = 11, remainder 2
=> 35 mod 3 = 2
La mayoría de las explicaciones pierden un paso importante, llenemos el vacío con otro ejemplo.
Dado lo siguiente:
Dividend: 16
Divisor: 6
La función de módulo se ve así:
16 % 6 = 4
Determinamos por qué es así.
Primero, realice la división de enteros , que es similar a la división normal, excepto que se descarta cualquier número fraccionario (también conocido como resto):
16 / 6 = 2
Luego, multiplica el resultado de la división anterior ( 2
) con nuestro divisor ( 6
):
2 * 6 = 12
Finalmente, reste el resultado de la multiplicación anterior ( 12
) de nuestro dividendo ( 16
):
16 - 12 = 4
El resultado de esta resta, 4
el resto , es el mismo resultado de nuestro módulo anterior.
16 // 6 >>> 2
y16 / 6 >>> 2.6666666666666665
Quizás el ejemplo con un reloj podría ayudarlo a comprender el módulo.
Un uso familiar de la aritmética modular es su uso en el reloj de 12 horas, en el que el día se divide en dos períodos de 12 horas.
Digamos que actualmente tenemos esta hora: 15:00
Pero también se podría decir que son las 3 pm
Esto es exactamente lo que hace el módulo:
15 / 12 = 1, remainder 3
Encuentra este ejemplo mejor explicado en wikipedia: Artículo de módulo de Wikipedia
La fórmula simple para calcular el módulo es: -
[Dividend-{(Dividend/Divisor)*Divisor}]
Entonces, 27% 16: -
27- {(27/16) * 16}
27- {1 * 16}
Respuesta = 11
Nota :
Todos los cálculos se realizan con números enteros. En el caso de un cociente decimal, la parte posterior al decimal debe ignorarse / truncarse.
Por ejemplo: 27/16 = 1,6875 debe tomarse como 1 en la fórmula mencionada anteriormente. 0,6875 se ignora.
Los compiladores de lenguajes informáticos tratan un número entero con parte decimal de la misma manera (truncando después del decimal) también
El operador de módulo toma una declaración de división y devuelve lo que queda de ese cálculo, los datos "restantes", por así decirlo, como 13/5 = 2. Lo que significa que quedan 3, o que quedan de ese cálculo. ¿Por qué? porque 2 * 5 = 10. Por lo tanto, 13 - 10 = 3.
El operador de módulo hace todo ese cálculo por usted, 13% 5 = 3.
Muy simple: a % b
se define como el resto de la división de a
porb
.
Consulte el artículo de wikipedia para obtener más ejemplos.
Me gustaría agregar una cosa más:
es fácil calcular el módulo cuando el dividendo es mayor / mayor que el divisor
dividendo = 5 divisor = 3
5% 3 = 2
3)5(1
3
-----
2
pero ¿y si el divisor es menor que el dividendo?
dividendo = 3 divisor = 5
3% 5 = 3 ?? cómo
Esto se debe a que, dado que 5 no puede dividir a 3 directamente, módulo será el dividendo
Espero que estos sencillos pasos te ayuden:
20 % 3 = 2
20 / 3 = 6
; no incluya el .6667
- simplemente ignórelo3 * 6 = 18
20 - 18 = 2
, que es el resto del móduloMás fácil cuando su número después del decimal (0.xxx) es corto. Luego, todo lo que necesitas hacer es multiplicar ese número por el número después de la división.
Ex: 32 % 12 = 8
Lo haces. 32/12=2.666666667
Entonces tiras lo que quieras 2
y te concentras en el 0.666666667
0.666666667*12=8
<- Esa es tu respuesta.
(nuevamente, solo es fácil cuando el número después del decimal es corto)
Digamos que tienes 17 mod 6.
qué total de 6 te acercará más a 17, será 12 porque si pasas de 12 tendrás 18 que es más que la pregunta de 17 mod 6. Luego tomarás 12 y menos de 17, lo que te dará su respuesta, en este caso 5.
17 mod 6 = 5
La división de módulos es bastante simple. Utiliza el resto en lugar del cociente.
1.0833... <-- Quotient
__
12|13
12
1 <-- Remainder
1.00 <-- Remainder can be used to find decimal values
.96
.040
.036
.0040 <-- remainder of 4 starts repeating here, so the quotient is 1.083333...
13/12 = 1R1, ergo 13% 12 = 1.
Ayuda pensar en el módulo como un "ciclo".
En otras palabras, para la expresión n % 12
, el resultado siempre será <12.
Eso significa que la secuencia para el conjunto 0..100
de n % 12
es:
{0,1,2,3,4,5,6,7,8,9,10,11,0,1,2,3,4,5,6,7,8,9,10,11,0,[...],4}
En ese sentido, el módulo, así como sus usos, se vuelve mucho más claro.
Lo único importante que hay que entender es que el módulo (indicado aquí por% como en C) se define mediante la división euclidiana .
Para dos (d, q)
enteros cualesquiera, lo siguiente siempre es cierto :
d = ( d / q ) * q + ( d % q )
Como puede ver, el valor de d%q
depende del valor de d/q
. Generalmente para enteros positivos d/q
se trunca hacia cero , por ejemplo, 5/2 da 2, por lo tanto:
5 = (5/2)*2 + (5%2) => 5 = 2*2 + (5%2) => 5%2 = 1
Sin embargo, para los números enteros negativos, la situación es menos clara y depende del idioma y / o el estándar. Por ejemplo, -5/2 puede devolver -2 (truncado hacia cero como antes) pero también puede devolver -3 (con otro idioma).
En el primer caso:
-5 = (-5/2)*2 + (-5%2) => -5 = -2*2 + (-5%2) => -5%2 = -1
pero en el segundo:
-5 = (-5/2)*2 + (-5%2) => -5 = -3*2 + (-5%2) => -5%2 = +1
Como se dijo antes, solo recuerde el invariante , que es la división euclidiana .
Más detalles:
27% 16 = 11
Puedes interpretarlo de esta manera:
16 va 1 vez en 27 antes de pasarlo.
16 * 2 = 32.
Entonces, se podría decir que 16 va una vez en 27 con un resto de 11.
De hecho,
16 + 11 = 27
Otro ejemplo:
20% 3 = 2
Bueno, 3 va 6 veces en 20 antes de pasarlo.
3 * 6 = 18
Para sumar 20 necesitamos 2, por lo que el resto de la expresión del módulo es 2.
Es simple, el operador de módulo (%) devuelve el resto después de la división entera. Tomemos el ejemplo de tu pregunta. ¿Cómo 27% 16 = 11? Cuando simplemente divide 27 entre 16, es decir (27/16), obtiene el resto como 11, y es por eso que su respuesta es 11.
Escribe una tabla que comience con 0.
{0,1,2,3,4}
Continúe la tabla en filas.
{0,1,2,3,4}
{5,6,7,8,9}
{10,11,12,13,14}
Todo en la columna uno es un múltiplo de 5. Todo en la columna 2 es un múltiplo de 5 con 1 como resto. Ahora la parte abstracta: puedes escribir eso (1) como 1/5 o como una expansión decimal. El operador de módulo devuelve solo la columna, o en otra forma de pensar, devuelve el resto en una división larga. Se trata de módulo (5). Módulo diferente, mesa diferente. Piense en una tabla hash.
Cuando dividimos dos números enteros tendremos una ecuación que se parece a la siguiente:
A / B = Q resto R
A es el dividendo; B es el divisor; Q es el cociente y R es el resto
A veces, solo nos interesa saber cuál es el resto cuando dividimos A por B. Para estos casos existe un operador llamado operador módulo (abreviado como mod).
Ejemplos
16/5= 3 Remainder 1 i.e 16 Mod 5 is 1.
0/5= 0 Remainder 0 i.e 0 Mod 5 is 0.
-14/5= 3 Remainder 1 i.e. -14 Mod 5 is 1.
Consulte el artículo de Khan Academy para obtener más información.
En Ciencias de la Computación, la tabla Hash usa el operador Mod para almacenar el elemento donde A serán los valores después del hash, B será el tamaño de la tabla y R es el número de ranuras o clave donde se inserta el elemento.
Consulte Cómo funciona una tabla hash para obtener más información.
Este fue el mejor enfoque para mí para comprender el operador de módulo. Solo te lo explicaré a través de ejemplos.
16 % 3
Cuando divides estos dos números, el resultado es el resto. Así es como lo hago.
16 % 3 = 3 + 3 = 6; 6 + 3 = 9; 9 + 3 = 12; 12 + 3 = 15
Entonces, lo que queda a 16 es 1
16 % 3 = 1
Aquí hay un ejemplo más: 16 % 7 = 7 + 7 = 14
¿qué le queda a 16? Es2
16 % 7 = 2
Uno más: 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24
. Entonces el resto es cero,24 % 6 = 0