modulus - Entendiendo el operador de módulo%
split liquid shopify (9)
(Esta explicación es solo para números positivos ya que, de lo contrario, depende del idioma)
Definición
El Módulo es el resto 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
.
En su ejemplo: 5 dividido por 7 da 0 pero sigue siendo 5 ( 5 % 7 == 5
).
Cálculo
La operación de módulo se puede calcular utilizando esta ecuación:
a % b = a - floor(a / b) * b
-
floor(a / b)
representa el número de veces que puede dividira
porb
-
floor(a / b) * b
es la cantidad que se compartió con éxito por completo - El total (
a
) menos lo que se compartió es igual al resto de la división
Aplicado al último ejemplo, esto da:
5 % 7 = 5 - floor(5 / 7) * 7 = 5
Aritmética modular
Dicho esto, su 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 de manera que 7k - 2 = 5
.
Es posible que no hayas aprendido la aritmética modular, pero probablemente hayas usado ángulos y sabes que -90 ° es lo mismo que 270 ° porque es módulo 360. ¡Es similar, se ajusta! Así que toma un círculo y di que el perímetro es 7. Luego lees dónde está 5. Y si intentas con 10, debería estar en 3 porque 10 % 7
es 3.
Entiendo el operador 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 el 2 que queda, sin embargo, mi confusión surge cuando se revierte esta declaración para leer:
5 % 7
Esto me da el valor de 5 que me confunde ligeramente. Aunque la totalidad de los 7 no va en 5, en parte sí ¿Por qué no hay un resto o un resto de 2 positivos o negativos?
Si está calculando el valor de 5 basado en el hecho de que 7 no va en 5, ¿por qué el resto no es 7 en lugar de 5?
Siento que hay algo que me falta aquí en mi comprensión del operador de módulo.
A continuación se presenta una nueva forma de averiguar el resto.
Declaración: El resto es siempre constante.
ex : 26 divided by 7 gives R : 5
esto se puede encontrar fácilmente encontrando 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.
Algunas de las respuestas aquí son complicadas para que las entienda. Intentaré agregar una respuesta más en un intento de simplificar la manera de ver esto:
El proceso consiste básicamente en hacer dos preguntas:
Ej. 7% 5
1- ¿Qué número multiplicar 5 para obtener 7?
Intentemos:
0
entonces 0 x 5 = 0
Aun así, somos cortos. Tenemos que nivelar hasta 7
.
1
entonces 1 x 5 = 5
Todavía no obtuvimos 7, intentemos un número más alto.
2
entonces, 2 x 5 = 10
Oh no, superamos los 7
. Entonces, 2
no es correcto, retrocedamos un paso (donde usamos 1
) y el resultado fue 5
.
2- ¿Cuánto necesitamos sumar a 5 (el número que acabamos de obtener del paso 1) para alcanzar el valor del número de la izquierda 7
?
Está claro que el número es 5. 7-5 = 2
.
7 % 5 = 2;
Ej. 5% 7
1- ¿Qué número usamos para multiplicar 7 para obtener 5?
Intentemos:
0
entonces 0 x 7 = 0
Todavía no obtuvimos 5, intentemos un número más alto.
1
entonces 1 x 7 = 7
Oh no, superamos los 5
, volvamos al paso anterior donde usamos 0
y obtuvimos el resultado 0
.
2- ¿Cuánto necesitamos agregar a 0
(el número que acabamos de obtener del paso 1) para alcanzar el valor del número de la izquierda 5
?
Está claro que el número es 5. 5-0 = 5
5 % 7 = 5
Como otros han señalado, el módulo se basa en el resto del sistema.
Creo que una forma más fácil de pensar sobre el módulo es lo que queda después de que un dividendo (el número a dividir) haya sido dividido por completo por un divisor. Entonces, si pensamos en 5% 7, cuando divides 5 por 7, 7 puede ir a 5 solo 0 veces y cuando restas 0 (7 * 0) de 5 (tal como lo aprendimos en la escuela primaria), entonces el resto sería 5 (el mod). Vea la siguiente ilustración.
0
______
7) 5
__-0____
5
Con la misma lógica, -5 mod 7 será -5 (solo 0 7s puede 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, es decir, -5 - (-3 * 1) = -5 + 3
El módulo es el sistema de residuos.
Entonces 7% 5 = 2.
5% 7 = 5
3% 7 = 3
2% 7 = 2
1% 7 = 1
Cuando se utiliza dentro de una función para determinar el índice de matriz. ¿Es segura la programación? Esa es una pregunta diferente. Supongo.
El operador de 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 programación por "sistema de residuos reducido".
Paso 1: 5/7 = 0.71
Paso 2: Toma el lado izquierdo del decimal, entonces tomamos 0 de 0.71 y multiplicamos por 7 0 * 7 = 0;
Paso #: 5-0 = 5; Por lo tanto, 5/7 = 5
Se trata sólo de los restos. 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 deberíamos recordar una cosa, mod significa resto por lo que
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
vamos a ponerlo de esta manera:
en realidad, el operador de módulo hace la misma división, pero no le importa la respuesta, LE IMPORTA DE ACERCA DE un recordatorio, por ejemplo, si divide de 7 a 5,
Así que, te voy a llevar a través de un ejemplo simple:
think 5 es un bloque, entonces, por ejemplo, vamos a tener 3 bloques en 15 (SIN nada más ), pero cuando ese loginc llegue a estos números {1,3,5,7,9,11, ...}, Aquí es donde sale el módulo, así que tome la lógica que dije antes y aplíquela a 7, así que la respuesta será que tenemos 1 bloque de 5 en 7 => ¡con 2 recordatorios en nuestra mano! ese es el modulo !!!
Pero estabas preguntando por el 5% 7, ¿verdad?
así que toma la lógica que dije, ¿cuántos bloques tenemos en 5? 0
entonces el módulo devuelve 0 ...
Eso es ...