Inicio · Parte 04 — Matemática discreta para computación
(a + b) mod n = ((a mod n) + (b mod n)) mod n
pequeño teorema de Fermat: a^(p−1) ≡ 1 (mod p) si p es primo y p ∤ a
inverso modular: a·a⁻¹ ≡ 1 (mod n), existe si mcd(a,n) = 1
La aritmética modular trabaja con las clases de equivalencia que la clase 085 definió: dos números son «el mismo» si difieren en un múltiplo de n. Sobre esas clases, la suma y el producto están bien definidos, y esa buena definición es lo que permite reducir en cada paso en lugar de al final.
Esa reducción es lo que hace viable la exponenciación modular. Calcular 7¹²⁸ mod 13 sin reducir exigiría un número de 108 dígitos; con exponenciación binaria y reducción en cada paso, son siete multiplicaciones de números pequeños. pow(base, exp, mod) en Python implementa exactamente eso.
El pequeño teorema de Fermat —a^(p−1) ≡ 1 (mod p) para p primo— es la base de los tests de primalidad probabilísticos y de RSA. El inverso modular existe cuando mcd(a, n) = 1 y se calcula con el algoritmo de Euclides extendido; Python lo expone como pow(a, -1, n) desde la versión 3.8.
Estas operaciones sostienen buena parte de la infraestructura digital: RSA, Diffie- Hellman, curvas elípticas, funciones hash, sumas de comprobación y generadores congruenciales de números pseudoaleatorios. La seguridad de varios de esos sistemas descansa en que la operación inversa —el logaritmo discreto— es computacionalmente difícil.
Exponenciación e inverso modular.
7¹²⁸ mod 13 = 3
(sin reducir, 7¹²⁸ tendría 109 dígitos)
Pequeño teorema de Fermat (p = 13 primo):
7¹² mod 13 = 1 ✓
Inverso de 7 módulo 13:
pow(7, -1, 13) = 2
verificación: 7·2 = 14 ≡ 1 (mod 13) ✓
Suma modular: (25 + 30) mod 13 = 55 mod 13 = 3
Aritmética modular: exponenciación rápida e inverso modular.
python classes/part-04-matematica-discreta-para-computacion/098-aritmetica-modular/lab.py
compmath run 098
7^128 mod 13pequeño_teorema_de_fermatinverso_de_7_mod_13verificacion_inversosuma_modularusos{
"7^128 mod 13": 3,
"pequeño_teorema_de_fermat": 1,
"inverso_de_7_mod_13": 2,
"verificacion_inverso": 1,
"suma_modular": 3,
"usos": "hashing, criptografía, checksums y generadores pseudoaleatorios"
}
RSA y Diffie-Hellman, funciones hash, sumas de comprobación, generadores pseudoaleatorios y aritmética de campos finitos.
Los grafos de cómputo, la búsqueda en árbol y las GNN son estructuras discretas; el conteo sostiene la probabilidad que después usa todo modelo generativo.
9780199219865 verificado en International ISBN Agency (2026-08-19).pow con módulo e inverso — documentación de la herramienta que ejecuta el laboratorio · URL de la fuente primaria comprobada en Python Software Foundation (2026-08-19).