numero - modulos diseño
¿Cómo funciona una operación de módulo cuando el primer número es más pequeño? (14)
por ejemplo, 2% 5, la respuesta es 2. ¿Cómo funciona eso? 2/5 = .4!
El módulo produce inherentemente un resultado entero, mientras que la división puede ser una operación entera o de punto flotante. Su observación de que 2/5 es igual a 0.4 indica que está pensando en términos de coma flotante. En ese caso, el .4 en sí es el resto, expresado de manera diferente. La parte integral de "0.4" es el "0" y la porción restante es ".4". El resto de una operación de división entera es exactamente lo mismo que la parte fraccional (o "decimal", en términos coloquiales) de una operación de coma flotante, simplemente expresada de manera diferente.
La parte fraccional de su ejemplo, 0.4, se puede expresar como 0.4 o como 2/5 (dos quintos); De cualquier manera, es lo mismo. Tenga en cuenta que cuando está escrito como 2/5, el denominador (divisor) de la parte fraccionaria es el mismo que el denominador (divisor) del problema original, mientras que el numerador (dividendo) de la parte fraccionaria es lo que se conoce como el "resto" en la división de enteros. De cualquier manera que lo mires, la parte fraccional del cociente y el resto representan la misma cosa (la porción del dividendo que no puede ser dividida por el divisor ), simplemente expresada de manera diferente.
Estoy jugando con la operación de módulo en Python y entiendo que escupirá lo que queda.
Pero, ¿y si el primer número es más pequeño que el segundo?
por ejemplo
2% 5 la respuesta es 2.
¿Cómo funciona?
2/5 = .4
2 = 0 x 5 + 2
2 dividido por 5 (división entera) es 0 con un resto de 2.
El numerador en el resto es tu respuesta módulo, no importa qué , si el numerador es más grande o más pequeño que el denominador.
12 % 5 = 2 , because 12 / 5 = 2 and **2**/5
9 % 2 = 1 , because 9 / 2 = 4 and **1**/2
Esto puede tener más sentido.
5 % 89 = 5 , because 5 / 89 = 0 and **5**/89
5 % 365 = 5 , because 5 / 365 = 0 and **5**/365
5 % 6 = 5 , because 5 / 6 = 0 and **5**/6
Es realmente fácil descifrar los resultados del módulo cuando el primer número es más pequeño. El resultado siempre es igual al primer número (más pequeño)
3 % 5 = 3
5 % 10 = 5
78 % 112 = 78
Pruébelo usted mismo.
Esto ayuda
22 % 5 = 2
17 % 5 = 2
12 % 5 = 2
7 % 5 = 2
2 % 5 = 2
Tal vez esto
22 / 5 = 4 + 2/5
17 / 5 = 3 + 2/5
12 / 5 = 2 + 2/5
7 / 5 = 1 + 2/5
2 / 5 = 0 + 2/5
MOD no funciona con decimal ... MOD (A, B) desea un resultado donde A
No hay un número que multiplique 5
para acercarlo a 2
.
En otras palabras, x
tiene que ser 0
para satisfacer la ecuación: 5*x + r = 2
.
Otra cosa a tener en cuenta es que si el primer número (a) es un número negativo, la respuesta siempre es la diferencia entre el segundo número y el primer número (na).
Ejemplo: a% n
- -5% 7 = 2 ---> 7 - 5 = 2
- 4% -9 = -5 ---> 9 - 4 = -5 (siga el signo del número mayor)
Si ambos números fueron negativos, la respuesta siempre será un número negativo que es igual al número más pequeño.
- -5% -7 = -5
- -4% -9 = -4
Para comprender la aritmética modular, le sugiero que vaya a Khan Academy y lea su publicación al respecto. También tienen preguntas de práctica interactiva en la misma página. Aquí está el enlace: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
En breve:
Usa la siguiente ecuación:
A = BQ + R
A es el dividendo
B es el divisor
Q es el cociente
R es el resto , y es el resultado de un módulo.
Q = (A / B)
Tenga en cuenta que Q siempre va al entero más pequeño más cercano. Entonces, si Q = 0.2, entonces Q = 0.0. Si Q = -1.2, entonces Q = -2.0.
Para tu pregunta:
Q = (2/5) = 0.4, entonces Q = 0.
Enchufa eso en ''A = BQ + R'':
2 = 5 * 0 + R
Entonces, R = 2.
Espero que esto ayude. Como dije, puedes leer más sobre Khan Academy. Aquí está el enlace: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
Puedes pensar que es 2/5 = 0 con un resto de 2 de 5.
a% b = a si a << b
cinco entra en 2 cero veces.
5 * 0 = 0
2-0 = 2.
la respuesta es 2
a%b = a/b=c,
c*b=d,
a-d=modulo;
Esto es lo que hace python mientras que mod dos números o eso creo. El módulo entre un número más pequeño y un número más grande siempre será el número más pequeño.