Inverso multiplicativo modular
Encuentre el número que deshace una multiplicación módulo m: el inverso de 3 módulo 11 es 4, porque 3 por 4 deja resto 1. También ve el mcd y un valor de control, y un aviso claro cuando no hay inverso. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- A
- 3
- Módulo m ≥ 2
- 11
- A módulo
- 3
- Inverso
- 4
- Mcd
- 1
- Comprobación
- 1
El inverso multiplicativo modular de un entero a módulo m es el residuo x que cumple a por x congruente con uno módulo m. Ese inverso existe si y solo si a y m son coprimos: su máximo común divisor es uno. Tutoriales de criptografía, pasos de clave privada RSA, división modular en programación competitiva y cálculos en grupos cíclicos requieren esta operación, pero muchos lenguajes solo exponen un GCD binario y dejan los coeficientes de Bézout a usted. Esta calculadora toma a y m, ejecuta el algoritmo de Euclides extendido de forma determinista y devuelve el único inverso no negativo en el rango de cero a m menos uno, junto con el gcd y un producto de verificación para que pueda comprobar el resultado sin rederivar los pasos.
Qué es un inverso modular y cuándo existe
En la aritmética ordinaria todo número no nulo tiene inverso multiplicativo: al dividir por él se obtiene uno. En aritmética modular la misma idea se convierte en una congruencia. Decimos que x es un inverso modular de a módulo m cuando a por x deja resto uno al dividir por m.
Como los residuos se reinician cada m pasos, no todo a tiene tal x. El obstáculo es aritmético, no de punto flotante: si d es el gcd de a y m y d es mayor que uno, entonces a por cualquier entero es múltiplo de d, de modo que el producto nunca puede ser congruente con uno, que no es múltiplo de d.
A la inversa, la identidad de Bézout garantiza enteros x e y con a x más m y igual a uno exactamente cuando ese gcd es uno, y reducir x módulo m produce el inverso. Los ingenieros encuentran esta condición al dividir en un cuerpo finito, al elegir exponentes de descifrado RSA que invierten el exponente público módulo phi de n, al deshacer multiplicaciones modulares en tuberías de hash o al resolver congruencias lineales en programación competitiva.
Devolver un error explícito cuando el par no es coprimo es más útil que un fallo silencioso: el cliente aprende que no existe inverso y puede ramificar según el gcd en lugar de adivinar qué biblioteca devolvió un residuo incorrecto.
Qué puede hacer con ella
Laboratorios de cripto y enseñanza de RSA
Docentes y estudiantes pueden invertir exponentes públicos módulo φ(n) bajo demanda e inspeccionar el gcd cuando un módulo de muestra no es coprimo con el exponente.
Programación competitiva y división modular
Los programadores competitivos pueden sustituir fragmentos ad hoc de GCD extendido por una sola llamada determinista al verificar división modular bajo módulos primos o compuestos.
Preguntas frecuentes
¿Qué ocurre si a y m no son coprimos?
El mensaje incluye gcd(a, m) para que sepa por qué no existe inverso multiplicativo modular. La validación fallida no se cobra.
¿Qué algoritmo calcula el inverso?
El algoritmo de Euclides extendido. Halla coeficientes de Bézout para a mod m y m; cuando el gcd es 1, el coeficiente de a se reduce al rango 0..m−1.
¿Es gratuita la calculadora de inverso modular?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Qué rangos de a y m se aceptan?
m debe ser un entero de 2 a 1,000,000,000,000. a debe ser un entero cuyo valor absoluto sea como máximo ese mismo límite. Los valores fuera se rechazan.
¿Cuál es el inverso de 3 módulo 11?
Es 4. Al multiplicar 3 por 4 y dividir entre 11 queda resto 1, que es justo lo que debe cumplir un inverso. El valor de control que aparece junto al resultado es ese 1.
Herramientas relacionadas
Para desarrolladores — acceso por API
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.
Endpoint de API
¿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.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/numth/modular-inverse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":3,"m":11}'const res = await fetch("https://api.kit.forhosting.com/numth/modular-inverse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 3,
"m": 11
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/modular-inverse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 3,
"m": 11
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/modular-inverse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":3,"m":11}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":3,"m":11}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/modular-inverse", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"a": 3,
"m": 11
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.modular_inverse",
"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.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_abs | 1000000000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo esta calculadora ejecuta el algoritmo de Euclides extendido
Llame a la capacidad con los campos enteros a y m, donde m es al menos dos. Los valores absolutos están acotados por un billón para que todo producto intermedio quede dentro del rango de enteros seguros de JavaScript. La implementación primero reduce a a la clase de residuo no negativa a_mod en cero hasta m menos uno, y luego aplica el algoritmo de Euclides extendido al par a_mod y m. Cada paso registra el cociente entero y actualiza los coeficientes de Bézout de modo que al terminar el coeficiente de a_mod por a_mod más un coeficiente de m iguala el gcd. Si ese gcd no es uno, la petición falla con invalid_input y un mensaje que nombra ambas entradas y el gcd; no se cobra nada. Si el gcd es uno, el coeficiente de a_mod se reduce al rango de cero a m menos uno y se devuelve como inverse. La respuesta también repite a, m, a_mod, gcd y check igual a a_mod por inverse módulo m, que debe ser uno cuando la llamada tiene éxito.
Uso práctico, límites, precios y entrega
Use la herramienta del navegador cuando desee un inverso rápido al leer una nota de cripto, comprobar una congruencia de tarea o depurar un paso de multiplicación modular. Las entradas aceptadas son enteros a con valor absoluto como máximo un billón y módulos m de dos a un billón. Los resultados son deterministas: el mismo par siempre produce el mismo inverso y el mismo campo check. Use la API cuando un script, calificador o plataforma educativa necesite muchos inversos sin incrustar una rutina de GCD extendido. Cada petición exitosa es un ítem facturable a $0.002; los fallos de validación y los pares no coprimos no consumen saldo. Conecte el endpoint a laboratorios de enseñanza RSA, demos de cuerpos finitos, ayudas de programación competitiva o cualquier tubería entera que prefiera aritmética exacta frente a heurísticas aproximadas. Como la unidad es un solo ítem y el motor es parse puro, la latencia se mantiene baja y el canal web gratuito refleja la API de pago sin un segundo camino de código que pueda divergir.
Casos de integración
Correctores de tareas y tuberías de teoría de números
Calificadores y scripts automáticos pueden confirmar inversos, detectar entradas no coprimas vía invalid_input y mantener cada producto intermedio dentro de los límites documentados.
Preguntas técnicas
¿Cómo calculo un inverso modular con esta API?
Envíe JSON con los campos enteros a y m (m ≥ 2) a numth.modular_inverse. Si tiene éxito, la respuesta devuelve inverse en 0..m−1, más a_mod, gcd y check igual a 1.