ForHosting KIT · Matemáticas

Exponenciación modular rápida

Obtenga el resto exacto de una potencia enorme sin desbordamientos: 2 elevado a 10 módulo 1000 es 24, y 3 elevado a 5 módulo 13 es 9. La base, el exponente y el módulo pueden tener hasta 2048 cifras cada uno. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Base
2
Exponente
10
Módulo
1000
Obtiene
Resultado
24

La exponenciación modular rápida responde una pregunta precisa: ¿cuál es el resto no negativo exacto cuando se eleva una base entera a un exponente entero y se reduce módulo m? Ese residuo sostiene demos de aula al estilo RSA, esbozos de intercambio Diffie–Hellman, problemas de concursos de programación y cualquier script de producción que deba potenciar enteros grandes sin desbordar tipos de anchura fija ni perder precisión más allá de 2^53.

Qué calcula la exponenciación modular rápida

Dados enteros base, exponent y módulo m, la exponenciación modular devuelve el único resto r en el intervalo cerrado de cero a m menos uno tal que la base elevada al exponente es congruente con r módulo m. En símbolos, r ≡ base^exponent (mod m). Un enfoque ingenuo multiplica la base por sí misma exponent veces y solo entonces reduce, lo que infla valores intermedios mucho más allá de la coma flotante o los enteros de anchura fija y falla en silencio cuando se pierde precisión.

La exponenciación modular rápida reduce tras cada multiplicación y eleva al cuadrado la base corriente mientras recorre los bits del exponente del menos al más significativo, de modo que el trabajo total escala con la longitud en bits del exponente y no con su magnitud decimal. Cuando m vale uno, todo entero es congruente con cero, así que el resultado es siempre cero.

Cuando el exponente es cero, el resultado es uno para cualquier base siempre que m sea mayor que uno, siguiendo la convención del producto vacío de la teoría de números y las bibliotecas de programación. Las bases negativas se reducen primero al sistema de residuos no negativos módulo m para que la cadena de multiplicaciones no mezcle restos con signo.

Los exponentes negativos se rechazan porque exigen inversos modulares que pueden no existir cuando base y m no son coprimos, y ese paso de inverso queda fuera del alcance de esta calculadora.

Límites, rendimiento y dónde lo usan los desarrolladores

La exponenciación modular binaria realiza un número constante de multiplicaciones modulares por bit del exponente, de modo que duplicar el exponente aproximadamente duplica el trabajo, mientras que un módulo mayor encarece cada producto con la longitud en dígitos. Los docentes la usan para verificar a mano a^b mod m antes de que los alumnos entreguen pruebas.

Los desarrolladores la integran en tests de propiedades que afirman que los protocolos permanecen en clases de residuos, en juegos o rankings que pliegan contadores grandes módulo un primo, y en pipelines de scripting que no deben reimplementar cuadrado y multiplicación en cada lenguaje.

Verificar respuestas de concurso y deberes a^b mod m

Alumnos y monitores pueden comprobar potencias modulares sin multiplicar a mano intermediarios enormes ni confiar en una calculadora que pierde precisión en silencio más allá de 2^53.

Sembrar demos de cifrado y tests unitarios de protocolo

Scripts que necesitan un paso determinista base^exp mod m para RSA de juguete, Diffie–Hellman o aserciones de clase de residuos pueden llamar a esto en lugar de llevar su propia potencia BigInt.

Plegar contadores grandes en un rango de residuos fijo

Juegos, sistemas de ranking y ayudas de sharding que elevan un entero y luego reducen módulo m obtienen un resto exacto sin sorpresas de redondeo en coma flotante.

¿Qué es la exponenciación modular?

Consiste en elevar la base a un exponente y tomar el resto módulo m, escrito base^exponent mod m. Esta calculadora devuelve ese resto no negativo como result.

¿Por qué se rechaza un exponente negativo?

Los exponentes negativos son potencias recíprocas y exigen inversos modulares, que pueden no existir cuando base y m no son coprimos.

¿Cómo funciona la calculadora de exponenciación modular rápida?

Usa cuadrado y multiplicación binarios sobre BigInt: por cada bit del exponente eleva al cuadrado la base corriente módulo m y multiplica en el resultado cuando el bit está activo.

¿Es gratis la calculadora de exponenciación modular rápida?

La herramienta del navegador es gratis y se ejecuta en local.

¿Qué pasa si el módulo es 1 o el exponente es 0?

Con módulo 1 todo número deja resto 0, así que el resultado siempre es 0. Con exponente 0 el resultado es 1 para cualquier base, siempre que el módulo sea mayor que 1: 7 elevado a 0 módulo 5 da 1.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/modular-exponentiation

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/modular-exponentiation \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"base":"2","exponent":"10","modulus":"1000"}'
{
  "base": "2",
  "exponent": "10",
  "modulus": "1000"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.modular_exponentiation",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Esta calculadora de exponenciación modular rápida ejecuta el algoritmo binario de cuadrado y multiplicación sobre BigInt para que los productos intermedios se reduzcan en cada paso, la respuesta sea determinista, y usted pueda probar el mismo núcleo puro gratis en el navegador antes de llamar a la API, que solo factura las tareas correctas.

Qué calcula la exponenciación modular rápida

El módulo debe ser al menos uno; módulos nulos o negativos no definen un resto no negativo estándar y devuelven invalid_input en lugar de inventar una respuesta.

Cómo llamar a la API y leer el resultado

Envíe un cuerpo JSON con tres campos obligatorios: base, exponent y modulus. Cada uno puede ser una cadena de entero decimal o un número JSON; se prefiere la forma cadena para valores mayores que el rango de enteros seguros de JavaScript, porque por encima de ese umbral no se representa cada entero con exactitud. Se aceptan los alias a para base, exp o e o power para exponent, y m o mod para modulus, de modo que formularios y clientes escritos a mano compartan un solo contrato sin renombrar claves. Si tiene éxito, la respuesta devuelve base, exponent y modulus como cadenas decimales normalizadas y añade result como el resto no negativo de base^exponent mod modulus. Comprobaciones clásicas que puede ejecutar de inmediato: base 2, exponent 10, modulus 1000 da result 24; base 3, exponent 5, modulus 13 da 9; base 7, exponent 0, modulus 5 da 1. Una validación fallida—campos ausentes, no enteros, fracciones, módulo menor que uno, exponente negativo o un valor más largo que el límite de dígitos publicado—devuelve invalid_input y nunca se carga al saldo prepago. El precio es un fijo $0.002 por petición correcta bajo la unidad item.

Límites, rendimiento y dónde lo usan los desarrolladores

Esta capacidad limita base, exponent y modulus a 2048 dígitos decimales—suficiente para concursos, deberes y muchas demos de escala criptográfica—y a la vez lo bastante compacta para que el BigInt puro del Worker siga siendo interactivo sin un stack multiprecisión pesado ni un contenedor. Si necesita módulos de millones de dígitos, descomposiciones por el teorema chino del resto o primitivas criptográficas de tiempo constante resistentes a canales laterales, le hace falta una biblioteca criptográfica dedicada; esta herramienta parse ligera es a propósito la calculadora y el paso de API compartidos para potencias modulares exactas en flujos de desarrollo. Combínela con herramientas de factorización o inverso modular cuando el flujo necesite el kit modular completo; este endpoint responde solo a la pregunta de potenciar y reducir para que la intención de búsqueda quede clara y la respuesta sea mínima y predecible.

¿Qué ocurre si el módulo es menor que 1?

El módulo debe ser al menos 1. Módulos nulos o negativos no definen el resto no negativo estándar usado aquí y devuelven invalid_input.

Ver la documentación completa del KIT →