ForHosting KIT · Matemática

Teorema chinês do resto

Resolva congruências simultâneas de uma só vez: x ≡ 2 mod 3, x ≡ 3 mod 5 e x ≡ 2 mod 7 dão x ≡ 23 mod 105. Aceita módulos com fatores comuns e avisa quando o sistema se contradiz. 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
Restos
2, 3, 2
Módulos
3, 5, 7
Você obtém
Solução x
23
Módulo
105
Produto
105
Quantidade
3

O caminho é aritmética inteira pura: sem rede, sem aleatoriedade e sem relógio.

O que diz o teorema chinês do resto

Um sistema de congruências procura um único número x que deixe um resto definido na divisão por vários divisores, chamados módulos. Quando os módulos são coprimos par a par, ou seja, nenhum par compartilha um fator, existe exatamente uma resposta entre zero e o produto dos módulos menos um, e as demais se repetem em saltos desse produto. O exemplo clássico x ≡ 2 mod 3, x ≡ 3 mod 5, x ≡ 2 mod 7 tem a única classe 23 módulo 105.

Como o solucionador trabalha e os erros comuns

O solucionador combina as congruências uma a uma, incorporando cada nova à resposta obtida até ali. Se dois módulos compartilham um fator, ele verifica primeiro se os restos coincidem módulo o máximo divisor comum; se não coincidem, avisa que não há solução. Quando coincidem, a resposta se repete a cada mínimo múltiplo comum dos módulos, e não a cada produto. Os erros típicos são esperar uma resposta única módulo o produto quando os módulos têm fatores comuns, digitar restos e módulos em ordem ou quantidade diferentes e esquecer que um resto negativo é apenas reduzido módulo o seu divisor.

Onde os sistemas CRT aparecem no estudo, na intuição de criptografia e no código

Professores podem gerar gabaritos para planilhas de congruências simultâneas sem confiar em calculadoras opacas que escondem os mdcs intermediários. Desenvolvedores usam o mesmo contrato para validar reconstruções modulares em demonstrações educacionais de RSA, para construir vetores de teste determinísticos para bibliotecas de aritmética modular, e para verificar que um pipeline de resíduos ainda se eleva a uma única classe depois de uma mudança de esquema. A prática de concursos costuma precisar de um solucionador rápido e offline, para que o trabalho manuscrito possa ser verificado em segundos.

Combine esta página com um verificador de coprimos quando você só precisar do mdc de dois inteiros, e com fatoração em primos quando precisar das potências primas por trás de um único módulo, em vez de um sistema simultâneo.

Congruências simultâneas de tarefas e concursos

Resolva sistemas de livro didático como x ≡ 2 mod 3, x ≡ 3 mod 5, x ≡ 2 mod 7 e verifique a classe única módulo o produto dos módulos.

Os módulos precisam ser coprimos par a par?

Não. Módulos coprimos par a par sempre geram uma solução única módulo seu produto. Módulos não coprimos são aceitos quando os restos concordam módulo cada mdc; caso contrário, o sistema é rejeitado como inconsistente.

O algoritmo é aleatorizado?

Não. Ele usa CRT sucessivo determinístico com mdc inteiro exato e inversos modulares. Os mesmos restos e módulos sempre resultam no mesmo x e módulo.

Como resolvo x ≡ 2 mod 3, x ≡ 3 mod 5 e x ≡ 2 mod 7?

Digite os restos 2, 3 e 2 e os módulos 3, 5 e 7 na mesma ordem. A resposta é 23, e qualquer número que difira de 23 por um múltiplo de 105 também serve.

O que acontece se as congruências se contradizem?

O solucionador informa que o sistema é incompatível em vez de inventar uma resposta. Só existe solução quando cada par de restos coincide módulo o máximo divisor comum dos dois módulos correspondentes.

Posso usar restos negativos?

Sim. Um resto negativo é reduzido módulo o seu próprio divisor antes do cálculo, de modo que o resultado é o mesmo que você obteria com o resto positivo equivalente.

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/chinese-remainder

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/chinese-remainder \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"remainders":[2,3,2],"moduli":[3,5,7]}'
{
  "remainders": [
    2,
    3,
    2
  ],
  "moduli": [
    3,
    5,
    7
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.chinese_remainder",
  "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.

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.

O solucionador do teorema chinês do resto recebe um sistema de congruências simultâneas — x congruente a cada resto a_i módulo cada módulo n_i — e retorna a solução única quando ela existe. Você informa arrays paralelos de restos e módulos; o mecanismo os combina com CRT sucessivo, verifica a consistência quando os módulos compartilham fatores, e informa tanto o representante x entre zero e módulo menos um quanto o módulo da classe solução (o produto dos n_i quando eles são coprimos par a par, ou o mínimo múltiplo comum deles caso contrário).

O que o teorema chinês do resto retorna e quando os sistemas falham

O famoso trio de sala de aula — x ≡ 2 mod 3, x ≡ 3 mod 5, x ≡ 2 mod 7 — resulta em x ≡ 23 mod 105. Esta ferramenta também aceita a forma geral: os módulos não precisam ser coprimos par a par. Classicamente, se os módulos são coprimos par a par, existe exatamente uma classe residual módulo o produto dos n_i que satisfaz todas as congruências ao mesmo tempo. Nesse caso, uma solução existe se e somente se cada par de restos concordar módulo o mdc dos módulos correspondentes, e a solução é única módulo o mínimo múltiplo comum de todos os n_i. Quando os restos discordam, a solicitação falha com invalid_input e uma mensagem que nomeia a inconsistência, em vez de inventar um x falso. A resposta em JSON de sucesso inclui x, modulus (o módulo CRT da classe solução), product (o produto bruto dos módulos de entrada), os remainders reduzidos entre zero e n_i menos um, uma cópia dos moduli, e count. Arrays ausentes, comprimentos desiguais, módulos não positivos, não inteiros, e valores fora da faixa de inteiros seguros também falham com invalid_input, para que células ruins de planilha nunca virem respostas erradas silenciosas.

Como os restos e módulos são lidos e como o CRT sucessivo permanece exato

Todo módulo precisa ser um inteiro positivo seguro. Os restos podem ser negativos e são reduzidos para o intervalo canônico antes da combinação. Internamente, o mecanismo começa pela primeira congruência e repetidamente combina a próxima: dado x ≡ x0 mod m e x ≡ a mod n, ele calcula g igual ao mdc de m e n, rejeita o sistema se a menos x0 não for divisível por g, depois constrói a solução atualizada com um inverso modular de m sobre g módulo n sobre g e multiplica o módulo por n sobre g para obter o novo mmc. Todas as multiplicações são protegidas, para que o produto e o módulo CRT intermediário permaneçam dentro dos inteiros seguros do JavaScript; produtos grandes demais falham claramente em vez de dar a volta. Os campos preferidos são remainders e moduli como arrays JSON de inteiros de comprimento igual. Os apelidos a, ai e residues mapeiam para remainders; n, ni e mods mapeiam para moduli, para que formulários, strings de consulta e notebooks legados possam reutilizar um contrato. Cada entrada pode ser um número inteiro JSON ou uma string decimal com um sinal opcional à esquerda; frações, notação científica e espaços incorporados são rejeitados.

Onde os sistemas CRT aparecem no estudo, na intuição de criptografia e no código

Nesta página, o trabalho roda inteiramente no seu navegador; pela API, cada solução bem-sucedida custa US$ 0,002, a validação com falha não é cobrada, e nada é armazenado depois que a resposta é devolvida.

Reconstrução modular em demonstrações de ensino

Eleve listas de resíduos de volta a uma única classe inteira ao explicar isomorfismos de anéis, quebra-cabeças de calendário, ou passos CRT educacionais estilo RSA.

Fixtures de teste determinísticas para bibliotecas modulares

Gere soluções CRT reproduzíveis para testes unitários e asserções de CI sem embutir tabelas calculadas à mão que se desviam da implementação.

Quanto custa o solucionador do teorema chinês do resto?

É gratuito no navegador, nesta página. Pela API, uma solicitação bem-sucedida custa US$ 0,002; entradas inválidas não são cobradas.

O que acontece se o sistema for inconsistente?

A solicitação falha com invalid_input e uma mensagem de que nenhum inteiro x satisfaz o sistema completo, porque os restos discordam módulo o mdc dos módulos.

Restos negativos são permitidos?

Sim. Os restos podem ser negativos; eles são reduzidos para o intervalo de zero a n_i menos um antes da combinação CRT. Os módulos precisam ser inteiros positivos.

Ver a documentação completa do KIT →