En matemáticas , la aritmética modular es un sistema de aritmética para números enteros , en el que los números se "enrollan" al alcanzar un valor determinado, llamado módulo . El enfoque moderno de la aritmética modular fue desarrollado por Carl Friedrich Gauss en su libro Disquisitiones Arithmeticae , publicado en 1801.
Un uso familiar de la aritmética modular es en el reloj de 12 horas , en el que el día se divide en dos períodos de 12 horas. Si ahora son las 7:00, entonces 8 horas después serán las 3:00. La simple suma daría como resultado 7 + 8 = 15 , pero 15:00 se lee como 3:00 en la esfera del reloj porque los relojes "vuelven a la normalidad" cada 12 horas y el número de la hora comienza de nuevo en cero cuando llega a 12. Decimos que 15 es congruente con 3 módulo 12, escrito 15 ≡ 3 (mod 12), de modo que 7 + 8 ≡ 3 (mod 12). De manera similar, 8:00 representa un período de 8 horas, y dos veces esto daría 16:00, que se lee como 4:00 en la esfera del reloj, escrito como 2 × 8 ≡ 4 (mod 12).
Dado un entero m ≥ 1 , llamado módulo , se dice que dos enteros a y b son congruentes módulo m , si m es un divisor de su diferencia; es decir, si existe un entero k tal que
La congruencia módulo m es una relación de congruencia , es decir, una relación de equivalencia compatible con las operaciones de suma , resta y multiplicación . La congruencia módulo m se denota
Los paréntesis significan que (mod m ) se aplica a toda la ecuación, no solo al lado derecho (aquí, b ).
Esta notación no debe confundirse con la notación b mod m (sin paréntesis), que se refiere a la operación módulo , el resto de b cuando se divide por m : es decir, b mod m denota el único entero r tal que 0 ≤ r < m y r ≡ b (mod m ) .
La relación de congruencia puede reescribirse como
mostrando explícitamente su relación con la división euclidiana . Sin embargo, b aquí no tiene por qué ser el resto de la división de a por m . Más bien, a ≡ b (mod m ) afirma que a y b tienen el mismo resto cuando se dividen por m . Es decir,
donde 0 ≤ r < m es el resto común. Recuperamos la relación anterior ( a − b = km ) restando estas dos expresiones y haciendo k = p − q .
Como la congruencia módulo m se define por la divisibilidad por m y como -1 es una unidad en el anillo de los números enteros, un número es divisible por - m exactamente si es divisible por m . Esto significa que todo número entero distinto de cero m puede tomarse como módulo.
En el módulo 12, se puede afirmar que:
porque la diferencia es 38 − 14 = 24 = 2 × 12 , un múltiplo de 12 . De manera equivalente, 38 y 14 tienen el mismo resto 2 cuando se dividen por 12 .
La definición de congruencia también se aplica a valores negativos. Por ejemplo:
La relación de congruencia satisface todas las condiciones de una relación de equivalencia :
Si a 1 ≡ b 1 (mod m ) y a 2 ≡ b 2 (mod m ) , o si a ≡ b (mod m ) , entonces: [1]
Si a ≡ b (mod m ) , entonces generalmente es falso que k a ≡ k b (mod m ) . Sin embargo, lo siguiente es cierto:
Para la cancelación de términos comunes, tenemos las siguientes reglas:
La última regla se puede utilizar para trasladar la aritmética modular a la división. Si b divide a a , entonces ( a / b ) mod m = ( a mod bm ) / b .
El inverso multiplicativo modular se define por las siguientes reglas:
La inversa multiplicativa x ≡ a −1 (mod m ) se puede calcular de manera eficiente resolviendo la ecuación de Bézout a x + my = 1 para x , y , utilizando el algoritmo euclidiano extendido .
En particular, si p es un número primo, entonces a es coprimo con p para todo a tal que 0 < a < p ; por lo tanto existe un inverso multiplicativo para todo a que no sea congruente con cero módulo p .
Algunas de las propiedades más avanzadas de las relaciones de congruencia son las siguientes:
La relación de congruencia es una relación de equivalencia . La clase de equivalencia módulo m de un entero a es el conjunto de todos los enteros de la forma a + km , donde k es cualquier entero. Se denomina clase de congruencia o clase de residuo de a módulo m , y puede denotarse como ( a mod m ) , o como a o [ a ] cuando el módulo m se conoce a partir del contexto.
Cada clase de residuo módulo m contiene exactamente un entero en el rango . Por lo tanto, estos enteros son representantes de sus respectivas clases de residuo.
Generalmente es más fácil trabajar con números enteros que con conjuntos de números enteros; es decir, los representantes que se consideran con mayor frecuencia, en lugar de sus clases de residuos.
En consecuencia, ( a mod m ) denota generalmente el único entero k tal que 0 ≤ k < m y k ≡ a (mod m ) ; se llama residuo de a módulo m .
En particular, ( a mod m ) = ( b mod m ) es equivalente a a ≡ b (mod m ) , y esto explica por qué a menudo se utiliza " = " en lugar de " ≡ " en este contexto.
Cada clase de residuo módulo m puede representarse por cualquiera de sus miembros, aunque normalmente representamos cada clase de residuo por el entero no negativo más pequeño que pertenece a esa clase [2] (ya que este es el resto propio que resulta de la división). Cualesquiera dos miembros de diferentes clases de residuo módulo m son incongruentes módulo m . Además, cada entero pertenece a una y sólo una clase de residuo módulo m . [3]
El conjunto de números enteros {0, 1, 2, ..., m − 1} se denomina sistema de mínimo residuo módulo m . Cualquier conjunto de m números enteros, de los cuales ninguno de ellos es congruente módulo m , se denomina sistema de residuo completo módulo m .
El sistema de residuo mínimo es un sistema de residuo completo, y un sistema de residuo completo es simplemente un conjunto que contiene precisamente un representante de cada clase de residuo módulo m . [4] Por ejemplo, el sistema de residuo mínimo módulo 4 es {0, 1, 2, 3} . Algunos otros sistemas de residuo completo módulo 4 incluyen:
Algunos conjuntos que no son sistemas de residuos completos módulo 4 son:
Dada la función totiente de Euler φ ( m ) , cualquier conjunto de números enteros φ ( m ) que sean primos entre sí con m y mutuamente incongruentes bajo el módulo m se denomina sistema de residuos reducidos módulo m . [5] El conjunto {5, 15} de arriba, por ejemplo, es una instancia de un sistema de residuos reducidos módulo 4.
Los sistemas de cobertura representan otro tipo de sistema de residuos que puede contener residuos con módulos variables.
Observación: En el contexto de este párrafo, el módulo m casi siempre se toma como positivo.
El conjunto de todas las clases de congruencia módulo m se denomina anillo de números enteros módulo m , [6] y se denota como , , o . [7] Sin embargo, no se recomienda la notación porque puede confundirse con el conjunto de números enteros m -ádicos . El anillo es fundamental para varias ramas de las matemáticas (véase § Aplicaciones más abajo).
Para m > 0 se tiene
Cuando m = 1 , es el anillo cero ; cuando m = 0 , no es un conjunto vacío , sino que es isomorfo a , ya que a 0 = { a } .
La suma, la resta y la multiplicación se definen mediante las siguientes reglas:
Las propiedades dadas anteriormente implican que, con estas operaciones, es un anillo conmutativo . Por ejemplo, en el anillo , se tiene
como en la aritmética del reloj de 24 horas.
Se utiliza la notación porque este anillo es el anillo cociente de por el ideal , el conjunto formado por todos los km con
Considerado como un grupo bajo adición, es un grupo cíclico , y todos los grupos cíclicos son isomorfos con para algún m . [8]
El anillo de números enteros módulo m es un cuerpo si y solo si m es primo (esto garantiza que cada elemento distinto de cero tiene un inverso multiplicativo ). Si m = p k es una potencia prima con k > 1 , existe un cuerpo finito único (salvo isomorfismo) con m elementos, que no es isomorfo a , que no puede ser un cuerpo porque tiene divisores de cero .
Si m > 1 , denota el grupo multiplicativo de los números enteros módulo m que son invertibles. Consiste en las clases de congruencia a m , donde a es coprimo de m ; éstas son precisamente las clases que poseen un inverso multiplicativo. Forman un grupo abeliano bajo la multiplicación; su orden es φ ( m ) , donde φ es la función totiente de Euler
En matemáticas puras, la aritmética modular es uno de los fundamentos de la teoría de números y afecta a casi todos los aspectos de su estudio. También se utiliza ampliamente en la teoría de grupos , la teoría de anillos , la teoría de nudos y el álgebra abstracta . En matemáticas aplicadas, se utiliza en el álgebra computacional , la criptografía , la informática , la química y las artes visuales y musicales .
Una aplicación muy práctica es calcular sumas de comprobación dentro de identificadores de números de serie. Por ejemplo, el Número Internacional Normalizado de Libros (ISBN) utiliza la aritmética módulo 11 (para ISBN de 10 dígitos) o módulo 10 (para ISBN de 13 dígitos) para la detección de errores. Del mismo modo, los Números Internacionales de Cuentas Bancarias (IBAN), por ejemplo, utilizan la aritmética módulo 97 para detectar errores de entrada del usuario en números de cuentas bancarias. En química, el último dígito del número de registro CAS (un número de identificación único para cada compuesto químico) es un dígito de control , que se calcula tomando el último dígito de las dos primeras partes del número de registro CAS por 1, el dígito anterior por 2, el dígito anterior por 3, etc., sumando todos estos y calculando la suma módulo 10.
En criptografía, la aritmética modular sustenta directamente los sistemas de clave pública como RSA y Diffie–Hellman , y proporciona campos finitos que subyacen a las curvas elípticas , y se utiliza en una variedad de algoritmos de clave simétrica , incluidos el Estándar de cifrado avanzado (AES), el Algoritmo internacional de cifrado de datos (IDEA) y RC4 . RSA y Diffie–Hellman utilizan la exponenciación modular .
En álgebra computacional, la aritmética modular se utiliza comúnmente para limitar el tamaño de los coeficientes enteros en cálculos y datos intermedios. Se utiliza en la factorización polinómica , un problema para el cual todos los algoritmos eficientes conocidos utilizan aritmética modular. Se utiliza en las implementaciones más eficientes de máximo común divisor polinómico , álgebra lineal exacta y algoritmos de base de Gröbner sobre los números enteros y racionales. Como se publicó en Fidonet en la década de 1980 y se archivó en Rosetta Code , la aritmética modular se utilizó para refutar la conjetura de la suma de potencias de Euler en una microcomputadora Sinclair QL usando solo una cuarta parte de la precisión entera utilizada por una supercomputadora CDC 6600 para refutarla dos décadas antes mediante una búsqueda de fuerza bruta . [9]
En informática, la aritmética modular se aplica a menudo en operaciones bit a bit y otras operaciones que involucran estructuras de datos cíclicas de ancho fijo . La operación módulo, tal como se implementa en muchos lenguajes de programación y calculadoras , es una aplicación de la aritmética modular que se utiliza a menudo en este contexto. El operador lógico XOR suma 2 bits, módulo 2.
El uso de la división larga para convertir una fracción en un decimal periódico en cualquier base b es equivalente a la multiplicación modular de b módulo el denominador. Por ejemplo, para un decimal, b = 10.
En música, el módulo aritmético 12 se utiliza en la consideración del sistema de temperamento igual de doce tonos , donde se produce equivalencia de octava y enarmónica (es decir, los tonos en una proporción de 1:2 o 2:1 son equivalentes, y do sostenido se considera igual que re bemol ).
El método de eliminación de nueves ofrece una comprobación rápida de los cálculos aritméticos decimales realizados a mano. Se basa en la aritmética modular módulo 9 y, específicamente, en la propiedad crucial de que 10 ≡ 1 (mod 9).
La aritmética módulo 7 se utiliza en algoritmos que determinan el día de la semana de una fecha determinada. En particular, la congruencia de Zeller y el algoritmo Doomsday hacen un uso intensivo de la aritmética módulo 7.
De manera más general, la aritmética modular también tiene aplicación en disciplinas como el derecho (por ejemplo, la distribución proporcional ), la economía (por ejemplo, la teoría de juegos ) y otras áreas de las ciencias sociales , donde la división proporcional y la asignación de recursos juegan un papel central en el análisis.
Dado que la aritmética modular tiene una amplia gama de aplicaciones, es importante saber lo difícil que es resolver un sistema de congruencias. Un sistema lineal de congruencias se puede resolver en tiempo polinomial con una forma de eliminación gaussiana ; para obtener más detalles, consulte el teorema de congruencia lineal . También existen algoritmos, como la reducción de Montgomery , que permiten realizar operaciones aritméticas simples, como la multiplicación y la exponenciación módulo m , de manera eficiente con números grandes.
Algunas operaciones, como hallar un logaritmo discreto o una congruencia cuadrática, parecen ser tan difíciles como la factorización de números enteros y, por lo tanto, son un punto de partida para algoritmos criptográficos y cifrado . Estos problemas podrían ser NP-intermedios .
La resolución de un sistema de ecuaciones aritméticas modulares no lineales es NP-completo . [10]