Calculadora de aritmética modular
Datos de entrada
| Operación | a mod n |
|---|---|
| a | 17 |
| Módulo n | 5 |
| Exponente b | 3 |
Calculadora de aritmética modular
Calcula el resto módulo n, la exponenciación modular (a^b mod n) y el inverso modular mediante las reglas de la aritmética de congruencias.
Datos de entrada
Resultados
Introduce un valor para ver los resultados.
Detalles
La aritmética modular es la rama de la teoría de números que estudia los enteros reducidos respecto a un divisor fijo llamado módulo. Dos enteros son congruentes módulo n si su diferencia es un múltiplo de n, lo que se escribe a ≡ b (mod n). Esta calculadora evalúa tres operaciones fundamentales: el resto de la división entera, la exponenciación modular rápida y el inverso modular.
La operación módulo
Para un módulo n ≥ 1, el resto matemático a mod n es el único entero r en [0, n − 1] que satisface:
donde q = ⌊a / n⌋ es el cociente entero inferior y r es el resto. Esta definición garantiza siempre un resultado no negativo, a diferencia del resto truncado que utilizan muchos lenguajes de programación.
Ejemplo resuelto. Para a = 17 y n = 5:
Luego 17 mod 5 = 2. La interpretación en aritmética de reloj es inmediata: al avanzar 17 posiciones en un dial de cinco marcas se llega a la posición 2.
Valores negativos. Para a = −7 y n = 5:
Así, −7 mod 5 = 3, no −2. La definición matemática conserva r no negativo. El operador % en C, JavaScript y Python 2 devolvería −2, ya que emplea el resto truncado en lugar del matemático.
Exponenciación modular
Calcular a^b mod n de forma directa —elevar primero a la potencia y reducir después— resulta inviable para exponentes grandes, porque a^b crece de manera exponencial. La exponenciación modular rápida (algoritmo de cuadrado y multiplicación) evita este problema reduciendo módulo n en cada paso.
El algoritmo descompone el exponente b en binario. Partiendo de resultado = 1:
- Se recorren los bits de b de menor a mayor peso.
- En cada bit, se eleva al cuadrado la base acumulada módulo n.
- Cuando el bit vale 1, se multiplica el resultado por la base actual, reduciendo de nuevo módulo n.
De este modo, el número de multiplicaciones es como máximo 2 log₂(b) en lugar de b − 1, y todos los valores intermedios permanecen en [0, n − 1].
Ejemplo resuelto. Para a = 17, b = 3, n = 5:
Comprobación directa: 17^3 = 4.913 = 982 × 5 + 3, por lo que 17^3 mod 5 = 3.
Inverso modular
El inverso modular de a módulo n es un entero x que satisface:
Dicho inverso existe si y solo si mcd(a, n) = 1, es decir, a y n son coprimos. Cuando n es primo, todos los enteros de 1 a n − 1 tienen inverso. Cuando n es compuesto, los valores que comparten algún factor con n carecen de él.
El algoritmo de Euclides extendido calcula el inverso cuando existe. Amplía el algoritmo euclídeo estándar para rastrear combinaciones lineales y obtener enteros s y t tales que:
Cuando mcd(a, n) = 1, el valor s es el inverso modular de a módulo n.
Ejemplo resuelto. Para a = 3 y n = 5:
Aplicando el algoritmo de Euclides extendido:
- 5 = 1 × 3 + 2
- 3 = 1 × 2 + 1
Sustituyendo hacia atrás: 1 = 3 − 1 × 2 = 3 − 1 × (5 − 1 × 3) = 2 × 3 − 1 × 5
Por tanto, 3 × 2 ≡ 1 (mod 5), es decir, 3⁻¹ ≡ 2 (mod 5).
Verificación: 3 × 2 = 6 = 1 × 5 + 1.
La identidad euclídea y el cociente entero
Para todo par (a, n) con n ≥ 1, el cociente entero q = ⌊a / n⌋ y el resto r = a mod n satisfacen la identidad euclídea:
Esta calculadora muestra tanto r como q, de modo que la identidad puede verificarse directamente con cualquier par de valores.
Aplicaciones prácticas
La aritmética modular tiene presencia en múltiples áreas de las matemáticas y la informática:
- Criptografía de clave pública. El algoritmo RSA cifra un mensaje elevándolo a un exponente grande módulo el producto de dos primos. El descifrado utiliza el inverso modular del exponente de cifrado.
- Dígitos de control. El ISBN-13, el IBAN y el algoritmo de Luhn de las tarjetas bancarias emplean aritmética modular para detectar errores de transcripción.
- Aritmética de calendario. El día de la semana tras d días se calcula módulo 7; la fecha de la Pascua se obtiene mediante congruencias que expresan ciclos astronómicos.
- Funciones hash. Una clave se asigna al índice de un cubo mediante clave mod tamaño_tabla.
- Estructuras de datos cíclicas. Los búferes circulares y los arrays circulares avanzan el puntero de lectura y escritura mediante índice mod capacidad.
Preguntas frecuentes (FAQ)
¿En qué se diferencia el módulo matemático del resto en lenguajes de programación?
El módulo matemático siempre devuelve un resultado no negativo en [0, n − 1]. Por ejemplo, −7 mod 5 = 3, porque −7 = (−2) × 5 + 3. En cambio, muchos lenguajes de programación —como C, JavaScript o Python 2— calculan el resto truncado, que daría −2 para −7 % 5. Esta calculadora emplea la definición matemática.
¿Cómo se calcula eficientemente una potencia grande como 17^1000 mod 5?
La exponenciación modular rápida (también llamada algoritmo de cuadrado y multiplicación) reduce el número de multiplicaciones a O(log b). El exponente se descompone en binario: en cada paso se eleva al cuadrado el valor acumulado, o se eleva al cuadrado y se multiplica por la base, reduciendo módulo n en cada operación para mantener los números pequeños.
¿Cuándo existe el inverso modular?
El inverso modular a⁻¹ mod n existe si y solo si mcd(a, n) = 1, es decir, a y n no comparten ningún factor común mayor que 1. Cuando n es primo, todos los enteros de 1 a n − 1 tienen inverso. Cuando n es compuesto, los valores que comparten un factor con n carecen de inverso.
¿En qué ámbitos se aplica la aritmética modular?
La aritmética modular es la base de la criptografía de clave pública: el algoritmo RSA utiliza exponenciación modular e inversos. También está presente en los dígitos de control (ISBN, IBAN, algoritmo de Luhn de las tarjetas bancarias), en el cálculo del día de la semana —que opera módulo 7—, en las funciones hash, y en estructuras de datos cíclicas como los búferes circulares.