ForHosting KIT · Matemáticas

Calculadora paso bebé-paso gigante de logaritmos discretos

2 elevado a 9 deja resto 5 al dividir entre 13, así que el logaritmo discreto de 5 en base 2 módulo 13 es 9. Indique una base, un objetivo y un módulo, primo o compuesto, para hallar el exponente. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
G
2
H
5
N
13
Obtiene
X
9
Ecuación
2^9 ≡ 5 (mod 13)

Esta calculadora de paso bebé-paso gigante halla un exponente no negativo x para el que g elevado a x es congruente con h módulo n. A diferencia de los solucionadores limitados a campos primos, también admite módulos compuestos y bases no coprimas mediante una reducción previa. El resultado incluye residuos normalizados y una ecuación legible para verificarlo. Si el objetivo no es alcanzable desde el generador indicado, la solicitud devuelve un error claro en vez de un resultado vacío ambiguo.

Describa con precisión la ecuación modular

Indique tres enteros: g es el generador o la base, h es el objetivo y n es el módulo. La calculadora busca un x no negativo que satisfaga g^x congruente con h módulo n. Se aceptan bases y objetivos negativos, que se normalizan al intervalo estándar entre cero y n menos uno.

La respuesta repite esos valores normalizados para que usted pueda ver la ecuación exacta incluso si los datos originales estaban fuera del intervalo. El módulo debe ser al menos dos y puede ser primo o compuesto, dentro del límite publicado. Primero se considera el exponente cero, conforme a la convención habitual de que g^0 vale uno módulo n.

Por ello, un objetivo congruente con uno produce x igual a cero. Una respuesta correcta contiene x, los operandos normalizados, el nombre del método y una ecuación de comprobación fácil de leer y utilizar en pruebas automatizadas.

Comprenda los pasos pequeños y gigantes

Una búsqueda directa prueba exponentes consecutivos y puede necesitar una cantidad de multiplicaciones modulares proporcional al módulo. El método paso bebé-paso gigante intercambia memoria por velocidad. Escoge una anchura cercana a la raíz cuadrada del intervalo, registra potencias pequeñas consecutivas de la base como pasos bebé y avanza después por el objetivo con saltos de esa anchura.

La coincidencia de un residuo combina un índice gigante con uno pequeño y recupera el exponente. Tanto la tabla como el número de saltos son del orden de la raíz cuadrada de n. Esta implementación es determinista: no muestrea candidatos, no depende de semillas aleatorias, no consulta servicios y no utiliza el reloj.

Para entradas no coprimas aplica primero la variante extendida. Elimina uno a uno los divisores comunes mientras conserva un desplazamiento del exponente y un multiplicador. Si un divisor vuelve inalcanzable el objetivo, rechaza la ecuación de inmediato.

Cuando la base reducida ya es invertible, comienza la búsqueda en tabla y se suma el desplazamiento final. Antes de devolverlo, el exponente se verifica de forma independiente mediante exponenciación modular.

Límites y casos sin solución

Un logaritmo discreto no siempre existe. Las potencias de g pueden recorrer solo una parte de los residuos módulo n y dejar h fuera de la sucesión generada. Este comportamiento es deliberado y resulta útil en procesos donde esa ausencia debe detener el paso siguiente; usted puede tratar el código estándar sin examinar campos nulos.

Los enteros mal formados, los campos ausentes y un módulo fuera de los límites producen la misma categoría de error con mensajes más específicos. El coste computacional crece con la raíz cuadrada del módulo reducido porque el algoritmo crea una tabla en memoria; el límite evita asignaciones desmedidas y acota la ejecución. Emplee parámetros moderados para enseñanza, vectores de prueba, rompecabezas y diagnóstico.

No sirve para recuperar secretos de grupos criptográficos reales, cuyos tamaños superan deliberadamente este límite.

Verificar ejercicios de aritmética modular

Compruebe una ecuación académica y obtenga el exponente junto con una congruencia legible que puede sustituir en el problema.

Crear vectores de prueba deterministas

Genere respuestas conocidas para código de exponenciación modular, incluidos casos con módulos compuestos y factores compartidos.

¿El módulo debe ser primo?

No. La reducción extendida admite módulos primos y compuestos, incluidos muchos casos donde g y n comparten un factor.

¿Qué exponente se devuelve?

El solucionador busca exponentes no negativos, considera explícitamente el cero y devuelve una solución verificada mediante BSGS.

¿Por qué hay un límite para el módulo?

Paso bebé-paso gigante consume memoria y tiempo proporcionales a la raíz cuadrada. El límite mantiene predecible la ejecución.

¿Qué pasa si no existe ningún exponente?

Las potencias de la base pueden alcanzar solo algunos restos módulo n, de modo que el objetivo puede quedar fuera. En ese caso recibe un aviso claro de que no hay exponente, no una respuesta vacía o engañosa.

¿Por qué es más rápido que probar exponentes uno a uno?

Una búsqueda directa puede necesitar tantos pasos como indica el módulo. Este método guarda una tabla de potencias pequeñas y avanza después a grandes saltos, así que ambas partes cuestan del orden de la raíz cuadrada de n.

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/numth/baby-step-giant-step

¿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/numth/baby-step-giant-step \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"g":2,"h":5,"n":13}'
{
  "g": 2,
  "h": 5,
  "n": 13
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.baby_step_giant_step",
  "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.

max_n1000000000000
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.

Describa con precisión la ecuación modular

Los datos pueden enviarse como enteros JSON o cadenas de dígitos, algo práctico cuando un lenguaje cliente no representa cómodamente un valor.

Gestione límites, errores y uso de la API

En ese caso, esta capacidad genera un error invalid_input cuyo mensaje indica que no existe exponente. El navegador utiliza el mismo solucionador puro que la API. Cada elemento automatizado cuesta $0.002, sin aritmética dependiente de la red ni resultados aleatorios.

Detectar objetivos inalcanzables

Use el error estándar invalid_input para detener un proceso cuando el objetivo no pertenece a la sucesión de potencias generada por g.

¿Qué ocurre si no existe logaritmo discreto?

La llamada falla con invalid_input y un mensaje que señala que no existe exponente para los valores proporcionados.

¿Cuánto cuesta una llamada a la API?

Cada elemento cuesta $0.002. El ejecutor del navegador usa la misma biblioteca pura para cálculos interactivos.

Ver la documentación completa del KIT →