Comprender el operador de módulo%

Entiendo el operador de módulo en términos de la siguiente expresión:

7 % 5 

Esto devolvería 2 debido al hecho de que 5 entra en 7 una vez y luego da los 2 restantes, sin embargo, mi confusión viene cuando inviertes esta afirmación para leer:

 5 % 7 

Esto me da el valor de 5 que me confunde levemente. Aunque el total de 7 no entra en 5, una parte lo hace, ¿por qué no hay residuo o un rest de 2 positivo o negativo?

Si está calculando el valor de 5 basado en el hecho de que 7 no entra en 5 en absoluto ¿por qué el rest no es 7 en lugar de 5?

Siento que hay algo que me falta aquí en mi comprensión del operador de módulo.

(Esta explicación es solo para números positivos ya que de lo contrario depende del idioma)

Definición

El Módulo es el rest de la división euclidiana de un número por otro. % se llama la operación de módulo .

Por ejemplo, 9 dividido por 4 es igual a 2 pero sigue siendo 1 . Aquí, 9 / 4 = 2 y 9 % 4 = 1 .

División euclidiana

En su ejemplo: 5 dividido por 7 da 0 pero sigue siendo 5 ( 5 % 7 == 5 ).

Cálculo

La operación del módulo se puede calcular usando esta ecuación:

 a % b = a - floor(a / b) * b 
  • floor(a / b) representa el número de veces que puede dividir a por b
  • floor(a / b) * b es la cantidad que se compartió correctamente por completo
  • El total ( a ) menos lo que se compartió es igual al rest de la división

Aplicado al último ejemplo, esto da:

 5 % 7 = 5 - floor(5 / 7) * 7 = 5 

Aritmética modular

Dicho esto, tu intuición fue que podría ser -2 y no 5. En realidad, en aritmética modular, -2 = 5 (mod 7) porque existe k en Z tal que 7k - 2 = 5 .

Puede que no haya aprendido aritmética modular, pero probablemente haya utilizado angularjs y sepa que -90 ° es lo mismo que 270 ° porque es módulo 360. ¡Es similar, se envuelve! Así que haz un círculo y di que el perímetro es 7. Luego, lee dónde está 5. Y si lo intentas con 10, debería estar en 3 porque 10 % 7 es 3.

Como otros han señalado, el módulo se basa en el sistema restante.

Creo que una forma más fácil de pensar sobre el módulo es lo que queda después de que un divisor dividió por completo el dividendo (número a dividir). Entonces, si pensamos en 5% 7, cuando divide 5 por 7, 7 puede ir a 5 solo 0 veces y cuando resta 0 (7 * 0) de 5 (como aprendimos en la escuela primaria), entonces el rest sería 5 (el mod). Vea la ilustración a continuación.

  0 ______ 7) 5 __-0____ 5 

Con la misma lógica, -5 mod 7 será -5 (solo 0 7s pueden ir en -5 y -5-0 * 7 = -5). Con el mismo token -5 mod -7 también será -5. Algunos casos más interesantes:

5 mod (-3) = 2, es decir, 5 – (-3 * -1)

(-5) mod (-3) = -2 ie -5 – (-3 * 1) = -5 + 3

módulo es el sistema de los residuos.

Entonces 7% 5 = 2.

5% 7 = 5

3% 7 = 3

2% 7 = 2

1% 7 = 1

Cuando se usa dentro de una función para determinar el índice de matriz. ¿Es una progtwigción segura? Esa es una pregunta diferente. Supongo.

Paso 1: 5/7 = 0.71

Paso 2: Toma el lado izquierdo del decimal, así que tomamos 0 de 0.71 y multiplicamos por 7 0 * 7 = 0;

Paso #: 5-0 = 5; Por lo tanto, 5/7 = 5

El operador del módulo le da el resultado en ‘sistema de residuos reducido’. Por ejemplo, para el mod 5 hay 5 enteros contados: 0,1,2,3,4. De hecho, 19 = 12 = 5 = -2 = -9 (mod 7) . La principal diferencia es que la respuesta está dada por los lenguajes de progtwigción por ‘sistema de residuo reducido’.

Una nueva forma de descubrir el rest se da a continuación

Declaración: El rest siempre es constante

 ex : 26 divided by 7 gives R : 5 

esto se puede encontrar fácilmente al encontrar el número que divide por completo 26 que está más cerca del divisor y tomando la diferencia de ambos

 13 is the next number after 7 that completely divides 26 because after 7 comes 8, 9 , 10, 11, 12 where none of them divides 26 completely and give remainder 0. So 13 is the closest number to 7 which divides to give Remainder 0. now take the difference (13 ~ 7) = 5 which is the Remainder . note : for this to work divisor should be reduced to its simplest form ex: if 14 is the divisor ..7 has to be chosen to find the closest number dividing the dividend. 

digámoslo de esta manera:
en realidad, el operador de Modulus hace la misma división, pero no le importa la respuesta, LE CUESTA recordatorio, por ejemplo, si divide 7 a 5,
Entonces, déjame que te lleve a través de un simple ejemplo:
creo que 5 es un bloque, entonces por ejemplo vamos a tener 3 bloques en 15 (SIN nada ), pero cuando ese loginc llega a este tipo de números {1,3,5,7,9,11, …}, aquí es donde aparece el Módulo, así que tome esa lógica que dije antes y aplíquela para 7, ¡así que la respuesta será que tenemos 1 bloque de 5 en 7 => con 2 recordatorios en nuestra mano! ese es el módulo !!!
pero estabas preguntando sobre el 5% 7, ¿verdad?
así que tome la lógica que dije, ¿cuántos bloques tenemos en 5? 0
entonces el módulo devuelve 0 …
Eso es …

Solo se trata de los rests. Déjame enseñarte como

 10 % 5=0 9 % 5=4 (because the remainder of 9 when divided by 5 is 4) 8 % 5=3 7 % 5=2 6 % 5=1 5 % 5=0 (because it is fully divisible by 5) 

Ahora debemos recordar una cosa, mod significa rest tan

 4 % 5=4 

pero ¿por qué 4? porque 5 X 0 = 0, entonces 0 es el múltiplo más cercano que es menor que 4, por lo tanto, 4-0 = 4