You are on page 1of 5

Aritmética modular

En matemáticas, la aritmética modular es un sistema aritmético para unas clases de


equivalencia de números enteros llamadas clases de congruencia.
Algunas veces se le llama, sugerentemente, 'aritmética del reloj', ya que los números 'dan la
vuelta' tras alcanzar cierto valor (el módulo).
Por ejemplo, cuando el módulo es 12, entonces cualesquiera dos números que divididos por
doce den el mismo resto son equivalentes (o "congruentes") uno con otro.
Los números
..., −34, −22, −10, 2, 14, 26, ...
son todos "congruentes módulo 12" unos con otros, ya que cada uno deja el mismo resto (2)
cuando los dividimos por 12.
La colección de todos esos números es una clase de congruencia.
Podéis pensar en un "peine" (finito si queremos ver sólo unos cuantos números
equivalentes alrededor del cero, o infinito si queréis imaginarlos todos de una vez; podéis
pensar también en una flecha con muchas barbas igualmente espaciadas y que apunta hacia
un objeto, el de los números enteros, que pintamos abajo)

No pintamos los negativos, que también están, ni por supuesto toda la ristra de enteros ni de
barbas de la flecha.
Además, hemos dibujado el caso en el que estamos mirando la aritmética 3-modular, el
peine tiene una "distancia" de 3 entre sus púas, y como se ve, está apuntando a la clase de
equivalencia del 0.
Si desplazamos el peine un espacio, encontramos la clase del 1, etc. Ir haciendo el proceso.
Cuando llegáis al 3 y como el peine es infinito, no podemos distinguir esa situación de la
situación inicial, hemos llegado otra vez a la clase del 0 = [0]; así que hemos visto que [1] +
[1] + [1] = [0].
Donde, como vemos, la operación "+" tiene el sentido geométrico explicado del
"desplazar".
Así que, como explicamos formalmente más abajo, se pueden sumar clases y se obtiene
otra clase, incluso restarlas y multiplicarlas.
Cuando el módulo es un Número primo, siempre se puede dividir por una clase que no
contenga el 0.

Tabla de contenidos
 1 Definición de módulo
o 1.1 La vieja convención, usada por los matemáticos
o 1.2 La convención nueva, usada en computación
 2 Implementación de la función 'mod'
 3 Aplicaciones de la aritmética modular
o 3.1 En el arte
 4 Algunas consecuencias del uso en matemáticas
 5 Referencias externas

Definición de módulo
Prevalecen dos convenciones discrepantes:
 la convención originalmente introducida por Gauss hace dos siglos, aún usada por
los matemáticos y apropiada para la matemática teórica y,
 una nueva, añadida por los teóricos de la computación y quizás más apropiada para
la misma.
La vieja convención, usada por los matemáticos
La convención original es que la expresión

significa que a y b se encuentran en la misma "clase de congruencia" módulo n, esto es, que
ambos dejan el mismo resto si los dividimos por n, o, equivalentemente, a − b es un
múltiplo de n.
Así se tiene por ejemplo

ya que ambos, 63 y 83 dejan en mismo resto (3) al dividir por 10, o, equivalentemente, 63 −
83 es un múltiplo de 10.
Y se dice:
"63 es congruente con 83, módulo 10,"
o
"63 y 83 son congruentes uno con otro, módulo 10."
"Modulo" a veces se abrevia con la palabra "mod" al hablar, igual que como al escribir.
En cuanto a los paréntesis (), no se suelen escribir, pero en este caso nos sirven para
enfatizar la diferencia entre las dos convenciones, matemática y de la moderna
computación.
En Latín, la lengua de los escritos de Gauss, módulo es el caso ablativo de modulus. El
número n, que en este ejemplo es el 10, es el modulus.
La convención nueva, usada en computación
Según esta convención, "63 mod 10" quiere decir el resto que queda cuando 63 es dividido
por 10.
En general a mod n es el resto en {0, ..., n−1} de la división de a por n.
Por ejemplo, 23 mod 12 = 11. (Estos cálculos mod 12 son lo que se hace cuando se
convierte la hora de un reloj 24-horas a un reloj 12-horas).
En algunos lenguajes de programación, como Perl y C, esta operación se simboliza con a %
n.
Esta diferencia en las convenciones no es muy importante en la práctica; se piensa que
refleja la preferencia, para el propósito computacional de una forma normal ante la relación
de equivalencia subyacente.
Aunque existe esta forma normal estricta, en este caso podemos tratar esto como meras
convenciones notacionales.

Implementación de la función 'mod'


En la práctica x mod y puede calcularse usando ecuaciones, en términos de otras funciones.
Surgen diferentes maneras dependiendo del alcance de las variables, que en las
implementaciones comunes es más amplio que el que hemos dado.
De ahí la utilización de algunas funciones como "Ent(z)".
En términos de la función parte entera "floor(z)", el entero más grande que es menor o
igual que z:
x mod y = x - y × floor(x/y).
En términos de "truncar" quedándose con la parte entera (escrita como "remain()" en varias
calculadoras y de signo siempre positivo; empleado por C's y relacionado con el operador
%):
x mod y = x - y × iPart(x/y)
En el caso de "floor", un divisor negativo nos dará un módulo negativo (por ejemplo, en esa
definición, 1 mod -2 = -1).
La función que resulta es la conocida como mod() en las calculadoras y que es
implementada en algunos lenguajes de alto-nivel, incluyendo Perl.
Perl también usa el operador % para indicar una operación de módulo, como forma de
aludir a la raya / de la división.
Las dos definiciones nos permiten que x e y sean de tipo entero o racional.
La expresión x mod 0 queda sin definir en la mayoría de los sistemas numéricos, aunque
algunos la definen como igual a x.

Aplicaciones de la aritmética modular


La aritmética modular, estudiada sistemáticamente en primer lugar por Carl Friedrich
Gauss al final del Siglo XVIII, se aplica en Teoría de números, álgebra abstracta,
criptografía, y en artes visuales y musicales.
Las operaciones aritméticas que hoy en día hacen la mayoría de las computadoras son
aritmético modulares, donde el módulo es 2b (b es el número de bits de los valores sobre los
que operamos).
Esto se ve claro en la compilación de lenguajes de programación como el C; donde por
ejemplo todas las operaciones aritméticas sobre "int", enteros, se toman módulo 232 en la
mayoría de las computadoras.
En el arte
En música, debido a la equivalencia de octavas y equivalencia enarmónica (esto es, los
pasos en razones de 1/2 o 2/1 son equivalentes, y Do# es lo mismo que Reb), la aritmética
modular se usa cuando consideramos la escala de doce tonos igualmente temperada,
especialmente en el dodecafonismo.
En artes visuales esta aritmética puede usarse para crear patrones artísticos basados en las
tablas de multiplicación módulo n (ver enlace abajo).

Algunas consecuencias del uso en matemáticas


Recuerda de nuestra discusión, que dos enteros a, b son congruentes módulo n, escrito
como:a ≡ b (mod n) si su diferencia a − b es divisible por n, esto es, si a − b= kn para algún
entero k.
Usando esta definición, podemos generalizar a módulos no enteros.
Por ejemplo, podemos definir a ≡ b (mod π) si a − b = kπ para algún entero k.
Esta idea se desarrolla plenamente en el contexto de la teoría de los anillos que abajo
comentamos.
Un ejemplo de la notación de congruencias.
14 ≡ 26 (mod 12).
Se trata de una relación de equivalencia, y las clases de equivalencia de un entero a se
denota con [a]n (o simplemente [a] si sobreentendemos el módulo.)
Otras notaciones son por ejemplo a + nZ o a mod n.
El conjunto de todas las clases de equivalencia se denota con Z/nZ = { [0]n, [1]n, [2]n, ...,
[n-1]n }.
Si a y b son enteros, la congruencia:ax ≡ b (mod n) tiene solución x sii el máximo común
divisor (a, n) divide a b.
Los detalles están recogidos en el teorema de congruencia lineal.
Sistemas de congruencias más complicados con módulos diferentes se pueden resolver
usando el teorema chino del resto o el método de sustitución sucesiva.
Esta relación de equivalencia tiene importantes propiedades que se siguen inmediatamente
de la definición: si :a1 ≡ b1 (mod n) y a2 ≡ b2 (mod n) entonces
a1 + a2 ≡ b1 + b2 (mod n) y :a1a2 ≡ b1b2 (mod n).
Lo que muestra que la suma y la multiplicación son operaciones bien definidas sobre el
conjunto de las clases de equivalencia.
En otras palabras, la suma y la multiplicación están definidas sobre Z/nZ mediante las
fórmulas siguientes:
 [a]n + [b]n = [a + b]n
 [a]n[b]n = [ab]n
De este modo, Z/nZ se convierte en un anillo con n elementos.
Por ejemplo, en el anillo Z/12Z, se tiene :[8]12[3]12 + [6]12 = [30]12 = [6]12.
En Álgebra abstracta se ve que la aritmética modular es un caso especial del proceso de
crear un anillo factorial de un anillo módulomodulo un ideal.
Si R es un anillo conmutativo, e I es un ideal de R, entonces dos elementos a y b de R se
dicen congruentes módulo I si a − b es un elemento de I.
Como pasaba con el anillo de enteros, esto se convierte en una relación de equivalencia, y
la suma y la multiplicación se convierten en operaciones bien definidas sobre el anillo
factorial R/I.
En el anillo de enteros, si consideramos la ecuación ax ≡ 1 (mod n), vemos que a tiene un
inverso multiplicativo sii a y n son coprimos.
Por tanto, Z/nZ es un cuerpo sii n es un primo.
Se puede probar que cada cuerpo finito es una extensión de Z/pZ para algún primo p.
Un hecho importante sobre módulos de números primos es el pequeño teorema de Fermat:
si p es un número primo y a es cualquier entero, entonces
ap ≡ a (mod p).
Esto fue generalizado por Euler: para todo entero positivo n y todo entero a relativamente
primo a n, :aφ(n) ≡ 1 (mod n), donde φ(n) denota función phi de Euler que cuenta el número
de enteros entre 1 y n que sean coprimos con respecto a n.
El teorema de Euler es una consecuencia del teorema de Lagrange, aplicado al caso del
grupo de las unidades del anillo Z/nZ.

You might also like