¿Cómo funciona Divulus Divulus?

Realmente no entiendo cómo funciona la división de módulo. Estaba calculando 27 % 16 y terminé con 11 y no entiendo por qué.

Parece que no puedo encontrar una explicación en términos simples en línea. ¿Puede alguien elaborar a un nivel muy alto sobre lo que está sucediendo aquí?

El resultado de una división de módulo es el rest 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 omiten un paso importante, llenemos el vacío con otro ejemplo.

Dado lo siguiente:

 Dividend: 16 Divisor: 6 

La función del módulo se ve así:

 16 % 6 = 4 

Vamos a determinar por qué es esto.

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 residuo):

 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 rest , ¡es el mismo resultado de nuestro módulo anterior!

Quizás el ejemplo con un reloj podría ayudarte a entender 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 tenemos actualmente esta vez: 15:00
Pero también podrías decir que son las 3 p. M.

Esto es exactamente lo que Modulo hace:

 15 / 12 = 1, remainder 3 

Este ejemplo se explica mejor en wikipedia: Wikipedia Artículo Modulo

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 son con números enteros. En el caso de un cociente decimal, la parte posterior al decimal debe ser ignorada / truncada.

por ejemplo: 27/16 = 1.6875 debe tomarse como solo 1 en la fórmula mencionada anteriormente. 0.6875 es ignorado.

Los comstackdores de lenguajes de computadora tratan un entero con la parte decimal de la misma manera (truncando después del decimal) también

El operador de módulo toma una statement de división y devuelve lo que sobra de ese cálculo, los datos “restantes”, por así decirlo, como 13/5 = 2. Lo que significa que quedan 3 o 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.

La división del módulo es simplemente esto: divida dos números y devuelva el rest solamente

27/16 = 1 con 11 sobrantes, por lo tanto, 27% 16 = 11

Ídem 43/16 = 2 con 11 sobrantes así que 43% 16 = 11 también

Muy simple: a % b se define como el rest de la división de a por b .

Vea el artículo de wikipedia para más ejemplos.

Espero que estos pasos simples ayuden:

 20 % 3 = 2 
  1. 20 / 3 = 6 ; no incluya el .6667 – simplemente .6667
  2. 3 * 6 = 18
  3. 20 - 18 = 2 , que es el rest del módulo

La división de módulo te da el rest de una división, en lugar del cociente.

Digamos que tienes 17 mod 6.

que total de 6 te acercará más a 17, será 12 porque si superas 12 tendrás 18, que es más que la cuestión de 17 mod 6. Luego tomarás 12 y menos de 17, lo que te dará tu respuesta, en este caso 5.

17 mod 6 = 5

La división del módulo es bastante simple. Utiliza el rest 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 a 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 para 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 esa luz, el módulo, así como sus usos, se vuelve mucho más claro.

Más fácil cuando su número después del decimal (0.xxx) es corto. Entonces todo lo que necesita hacer es multiplicar ese número con el número después de la división.

Ej: 32 % 12 = 8

32/12=2.666666667 Luego tiras el 2 y te enfocas en 0.666666667 0.666666667*12=8 < - Esa es tu respuesta.

(De nuevo, solo es fácil cuando el número después del decimal es corto)

Me gustaría agregar una cosa más:

es fácil calcular el módulo cuando el dividendo es mayor o mayor que el divisor

dividendo = 5 divisor = 3

5% 3 = 2

 3)5(1 3 ----- 2 

pero qué pasa si el divisor es más pequeño que el dividendo

dividendo = 3 divisor = 5

3% 5 = 3? cómo

Esto se debe a que, dado que 5 no puede dividir 3 directamente, el módulo será el dividendo

Es simple, el operador del módulo (%) devuelve el rest después de la división entera. Tomemos el ejemplo de su pregunta. ¿Cómo 27% 16 = 11? Cuando simplemente divide 27 por 16, es decir (27/16), obtiene el rest como 11, y es por eso que su respuesta es 11.

Escriba una tabla comenzando con 0.

 {0,1,2,3,4} 

Continúa 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 rest. Ahora la parte abstracta: puede escribir que (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 rest en la división larga. Estás tratando en módulo (5). Diferente módulo, tabla diferente. Piensa en una Tabla hash.

Cuando dividimos dos enteros tendremos una ecuación que se parece a la siguiente:

A / B = Q rest R

A es el dividendo; B es el divisor; Q es el cociente y R es el rest

A veces, solo nos interesa saber cuál es el rest cuando dividimos A entre B. Para estos casos, hay un operador llamado operador de módulo (abreviado como mod).

Ejemplos

 16/5= 3 Remainder 1 ie 16 Mod 5 is 1. 0/5= 0 Remainder 0 ie 0 Mod 5 is 0. -14/5= 3 Remainder 1 ie -14 Mod 5 is 1. 

Vea el artículo de Khan Academy para más información.

En Informática, 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 la 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 entender el operador de módulo. Solo te explicaré a través de ejemplos.

 16 % 3 

Cuando divide estos dos números, el rest es el resultado. Esta es la forma en que lo hago.

 16 % 3 = 3 + 3 = 6; 6 + 3 = 9; 9 + 3 = 12; 12 + 3 = 15 

Entonces, lo que queda en 16 es 1

 16 % 3 = 1 

Aquí hay un ejemplo más: 16 % 7 = 7 + 7 = 14 ¿qué queda para 16? Es 2 16 % 7 = 2

Uno más: 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24 . Entonces el rest es cero, 24 % 6 = 0