Calculadora de Módulo

Resto (a mod b)
Siguiente

La operación de módulo (o “mod”) devuelve el resto después de la división entera: 17 mod 5 = 2 porque 17 = 3·5 + 2. Es el corazón de la aritmética modular, la criptografía, las funciones hash y el patrón de “cada N-ésima fila” en SQL. Esta calculadora acepta operandos enteros o decimales, muestra el cociente y el resto explícitamente, y maneja las diferencias de convención de signos entre lenguajes (el % de Python ≠ el % de C para negativos).

Cómo calcular a mod b

  1. 1

    Ingresa el dividendo (a) y el divisor (b)

    Cualquier número; decimales y negativos están bien.

  2. 2

    Elige la convención de signo

    División truncada (C, Java, Go), división redondeada hacia abajo (Python, Ruby, convención matemática).

  3. 3

    Lee el cociente y el resto

    a = q·b + r, con la regla elegida para el signo de r.

  4. 4

    Ve la expresión matemática

    Los valores sustituidos hacen visible cada paso.

Dos convenciones para números negativos

Para operandos positivos, todas las convenciones coinciden: 17 mod 5 = 2. Para negativos, los lenguajes difieren:

Lenguaje -17 mod 5 Convención
Python, Ruby 3 Redondeado hacia abajo
C, Java, Go, JS -2 Truncado
Libros de matemáticas 3 Redondeado hacia abajo (usualmente)

División redondeada hacia abajo: el cociente se redondea hacia −∞. El resto siempre tiene el signo del divisor: mismo signo que b. División truncada: el cociente se redondea hacia cero. El resto tiene el signo del dividendo: mismo signo que a.

Para a = -17, b = 5:

  • Truncado: q = -3 (redondeado hacia 0), r = -17 − (-3)·5 = -2.
  • Redondeado hacia abajo: q = -4 (redondeado hacia -∞), r = -17 − (-4)·5 = 3.

Ambos son correctos dada la convención. Elige para que coincida con tu lenguaje.

Dónde aparece el módulo

  • Tiempo. Minutos en una hora, días de la semana, segundos en un día, toda aritmética modular.
  • Tablas hash. hash(key) mod table_size elige un cubo.
  • Programación round-robin. task_i mod worker_count asigna trabajo.
  • Criptografía. RSA y Diffie-Hellman se basan en mod n con grandes primos.
  • Cada N-ésima fila. En SQL: WHERE id % 3 = 0.
  • Chequeo par/impar. n mod 2 == 0 significa par.
  • Patrones alternos. Rayado de filas, coloreando cada otro ítem.
  • Buffers circulares. (index + 1) mod size envuelve.

Identidades útiles

  • (a + b) mod n = ((a mod n) + (b mod n)) mod n
  • (a · b) mod n = ((a mod n) · (b mod n)) mod n
  • (a^k) mod n puede ser calculado por exponenciación modular rápida en O(log k), crítico para criptografía de números grandes.
  • a mod 1 = 0 para cualquier entero a.
  • a mod a = 0.

Módulo decimal

Para números reales, la definición natural es a mod b = a − b · floor(a/b). 7.5 mod 2.5 = 0 porque 7.5 es un múltiplo exacto. 7.6 mod 2.5 = 0.1.

El operador % de JavaScript funciona con números reales; el fmod de Python hace módulo real truncado; el % de Python hace módulo real redondeado hacia abajo.

Ejemplos resueltos

  • 100 mod 7: 100 = 14·7 + 2, así que el resto es 2.
  • 25 mod 4: 25 = 6·4 + 1, así que el resto es 1.
  • -10 mod 3 (redondeado hacia abajo): -10 = -4·3 + 2, resto 2. (Truncado daría -1.)
  • 17.5 mod 5: 17.5 = 3·5 + 2.5, resto 2.5.

Preguntas frecuentes

La mayoría de las veces son sinónimos. Formalmente, “módulo” a menudo implica la convención matemática (redondeada hacia abajo), mientras que “resto” a menudo se refiere a la variante truncada (estilo C). Los nombres se filtran en la documentación del lenguaje; cuando importa, especifica la convención.

Python sigue la convención matemática (redondeada hacia abajo), que mantiene el signo del resto coincidiendo con el del divisor. C sigue la convención del ALU de hardware (truncado), donde el signo del resto coincide con el del dividendo. Ninguno es incorrecto; son elecciones diferentes.

No, la división por cero está indefinida. La calculadora devuelve un error para b = 0.

Usualmente, sí. Consulta la especificación de tu lenguaje para el manejo de números negativos, Python y Ruby difieren de C, Java, Go y JavaScript.

Para matemáticas estilo RSA con números de 2048 bits, usa una biblioteca dedicada (el pow(a, b, n) de Python, el BigInteger.modPow de Java). Esta calculadora maneja valores cotidianos, no de grado criptográfico.

Herramientas relacionadas

Herramienta disponible en otros idiomas