ForHosting KIT · Matemática

Calculadora passo de bebê-passo de gigante para logaritmos

2 elevado a 9 deixa resto 5 na divisão por 13, então o logaritmo discreto de 5 na base 2 módulo 13 é 9. Informe uma base, um alvo e um módulo, primo ou composto, para achar o expoente. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
G
2
H
5
N
13
Você obtém
X
9
Equação
2^9 ≡ 5 (mod 13)

Esta calculadora de passo de bebê-passo de gigante encontra um expoente não negativo x para o qual g elevado a x é congruente a h módulo n. Diferentemente de soluções restritas a corpos primos, ela também aceita módulos compostos e bases não coprimas por meio de uma redução inicial. O resultado inclui resíduos normalizados e uma equação legível para conferência. Se o alvo não puder ser alcançado pelo gerador informado, a solicitação retorna um erro claro, e não um resultado vazio ambíguo.

Descreva a equação modular com precisão

Informe três inteiros: g é o gerador ou a base, h é o alvo e n é o módulo. A calculadora procura um x não negativo que satisfaça g^x congruente a h módulo n. Bases e alvos negativos são aceitos e normalizados no intervalo padrão de zero a n menos um.

A resposta repete esses valores normalizados para que você veja exatamente qual equação foi resolvida, mesmo quando a entrada original estava fora do intervalo. O módulo deve ser no mínimo dois e pode ser primo ou composto, respeitando o limite publicado. O expoente zero é verificado primeiro, seguindo a convenção usual de que g^0 vale um módulo n.

Assim, um alvo congruente a um produz x igual a zero imediatamente. Uma resposta bem-sucedida contém x, os operandos normalizados, o nome do método e uma equação de verificação clara, adequada tanto para inspeção manual quanto para testes automatizados.

Entenda os passos de bebê e de gigante

Uma busca direta testa expoentes consecutivos e pode exigir uma quantidade de multiplicações modulares proporcional ao módulo. O passo de bebê-passo de gigante troca memória por velocidade. Ele escolhe uma largura próxima da raiz quadrada do intervalo, armazena potências pequenas consecutivas da base como passos de bebê e percorre o alvo em saltos dessa largura.

Uma coincidência de resíduos combina os índices dos dois passos e recupera o expoente. Tanto a tabela quanto o número de saltos ficam na ordem da raiz quadrada de n. Esta implementação é determinística: não sorteia candidatos, não depende de sementes aleatórias, não consulta serviços e não usa o relógio.

Em entradas não coprimas, aplica primeiro a forma estendida. Divisores comuns são removidos um a um, enquanto um deslocamento do expoente e um multiplicador são preservados. Se um divisor tornar o alvo inalcançável, a equação é rejeitada de imediato.

Quando a base reduzida se torna invertível, começa a busca na tabela, e o deslocamento é somado. Antes da resposta, o candidato é conferido por exponenciação modular independente.

Limites e casos sem solução

Um logaritmo discreto nem sempre existe. As potências de g podem visitar apenas parte dos resíduos módulo n, deixando h fora da sequência gerada. Esse comportamento é intencional e ajuda em fluxos nos quais a ausência da solução deve interromper a próxima etapa; você pode tratar o código padrão sem procurar campos nulos.

Inteiros malformados, campos ausentes e módulos fora dos limites geram a mesma categoria de erro com mensagens mais específicas. O custo computacional cresce com a raiz quadrada do módulo reduzido, pois o algoritmo monta uma tabela na memória; o limite evita alocações inesperadas e mantém a execução controlada. Use parâmetros modestos em ensino, vetores de teste, desafios e diagnóstico.

Esta ferramenta não recupera segredos de grupos criptográficos de produção, cujos tamanhos superam deliberadamente esse limite.

Verificar exercícios de aritmética modular

Confira uma equação didática e receba o expoente com uma congruência legível que pode ser substituída no problema.

Criar vetores de teste determinísticos

Gere respostas conhecidas para código de exponenciação modular, inclusive com módulos compostos e fatores comuns.

O módulo precisa ser primo?

Não. A redução estendida aceita módulos primos e compostos, inclusive muitos casos em que g e n têm um fator comum.

Qual expoente é retornado?

O solucionador pesquisa expoentes não negativos, trata o zero explicitamente e retorna uma solução verificada pelo BSGS.

Por que existe um limite para o módulo?

O algoritmo usa memória e tempo de raiz quadrada. O limite mantém a tabela hash e a execução previsíveis.

O que acontece se não existir nenhum expoente?

As potências da base podem alcançar só alguns restos módulo n, então o alvo pode ficar de fora. Nesse caso você recebe um aviso claro de que não há expoente, e não uma resposta vazia ou enganosa.

Por que é mais rápido do que testar expoentes um por um?

Uma busca direta pode exigir tantos passos quanto o tamanho do módulo. Este método guarda uma tabela de potências pequenas e depois avança em saltos grandes, então as duas partes custam cerca da raiz quadrada de n.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/numth/baby-step-giant-step

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

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"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_n1000000000000
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Descreva a equação modular com precisão

Os valores podem ser inteiros JSON ou sequências de dígitos, recurso útil quando a linguagem cliente não representa um número de forma conveniente.

Trate limites, falhas e uso da API

Nesse caso, esta capacidade gera um erro invalid_input cuja mensagem informa que não existe expoente. O navegador executa o mesmo solucionador puro da API. Chamadas automatizadas custam US$ 0,002 por item, sem aritmética dependente da rede ou resultados não determinísticos.

Detectar alvos inalcançáveis

Use a falha padrão invalid_input para interromper um fluxo quando o alvo não pertence à sequência de potências de g.

O que ocorre quando não há logaritmo discreto?

A chamada falha com invalid_input e uma mensagem informando que não existe expoente para os valores fornecidos.

Quanto custa uma chamada de API?

Cada item custa US$ 0,002. O executor do navegador usa a mesma biblioteca pura em cálculos interativos.

Ver a documentação completa do KIT →