Debería pensar en la función de módulo como un mapa de los enteros a los enteros de modn, no como un operador binario como parece estar tratando de hacer aquí.
Dicho esto, podemos verificar formalmente estas cosas:
- Distributivo en el primer componente: no. 5% (2 + 3) = 0, mientras que (5% 2) + (5% 3) = 1 + 2 = 3
- Distributivo en el segundo componente: sí, suponiendo que la implementación maneja los argumentos negativos correctamente y no hay desbordamiento involucrado. (x + y)% n = (x% n) + (y% n)
EDITAR : Vamshi Palreddy señala en los comentarios que la forma en que uso la palabra “desbordamiento” es bastante sutil aquí. En general, el operador% ofrecido por un lenguaje de programación no es distributivo si lo consideramos como una operación binaria en enteros.
- Si g (x) es una función unidireccional débil, ¿es f (x) = x (exclusivo o) g (x) una función unidireccional? Si es así, ¿puede ser fuerte?
- ¿Cuál es la mejor descripción del cálculo lambda?
- ¿Qué es una variable?
- Cómo demostrar que [matemáticas] E (n, k) = \ Theta (n ^ \ frac {1} {k}) [/ matemáticas] para la recurrencia del problema clásico de caída de huevos
- ¿Cuál es el número más grande que puede generar con un procesador de 64 bits?
- Asociativo: No. (3% 4)% 2 = 3% 2 = 1, mientras que 3% (4% 2) = 3% 0, que es 0 o no está definido.
- Conmutativo: No. (2% 4) = 2, mientras que (4% 2) = 0.
No sé qué quieres decir con “álgebra inversa”.
Aquí hay una breve introducción a la aritmética modular:
Aritmética modular / Introducción
En el contexto de la aritmética modular, lo que hace la función% es darle un pequeño representante de una clase de números de congruencia.