Formas quadráticas binárias reduzidas por discriminante
Lista as formas reduzidas, primitivas e positivas definidas ax² + bxy + cy² de um discriminante negativo: −23 dá três formas, [1, 1, 6], [2, −1, 3] e [2, 1, 3], então seu número de classes é 3. Só aritmética inteira exata. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Discriminante
- -23
- Quantidade
- 3
Esta calculadora lista os representantes reduzidos canônicos das formas quadráticas binárias integrais, primitivas e positivas definidas com um discriminante negativo escolhido. Informe um discriminante válido para receber cada tripla de coeficientes [a, b, c], a contagem e o discriminante no resultado. O cálculo é exato, determinístico e feito com aritmética inteira. Ele ajuda você a conferir números de classe, preparar exercícios, explorar classes de equivalência e validar contas manuais sem instalar um sistema de álgebra simbólica nem consultar uma base matemática remota.
O que a calculadora lista
Uma forma quadrática binária é uma expressão ax² + bxy + cy² com coeficientes inteiros. Seu discriminante é D = b² − 4ac. Quando D é negativo e a é positivo, a forma é positiva definida.
A calculadora retorna formas primitivas, isto é, gcd(a, b, c) = 1, e escolhe representantes reduzidos que satisfazem |b| ≤ a ≤ c. Nos casos de fronteira, aplica a convenção b ≥ 0 quando |b| = a ou a = c. Essas condições tornam a lista finita e fornecem um representante padrão de cada classe de equivalência própria.
Cada resultado aparece como coeficientes separados e na notação compacta [a, b, c]. A contagem informa quantas formas primitivas reduzidas foram encontradas para o discriminante fornecido.
Como escolher e validar um discriminante
Informe um inteiro negativo congruente a 0 ou 1 módulo 4. Essa condição é necessária porque b² sempre é 0 ou 1 módulo 4. Por exemplo, −23 é válido por ser 1 módulo 4, enquanto −22 não é um discriminante quadrático.
A calculadora rejeita zero, valores positivos, números fracionários ou inseguros e valores fora do limite publicado. O discriminante não precisa ser fundamental: o filtro de formas primitivas continua valendo. Alguns discriminantes válidos não possuem representantes primitivos; nesse caso, o retorno é uma lista vazia com contagem zero, e não um erro.
Como a enumeração permanece exata e reproduzível
O algoritmo decorre diretamente da teoria da redução. Para uma forma reduzida positiva definida, as desigualdades implicam a ≤ √(|D|/3), estabelecendo um limite finito para o laço externo. Para cada a possível, são testados os inteiros b entre −a e a, respeita-se a paridade necessária e calcula-se c por (b² − D)/(4a).
Um candidato só permanece se c for inteiro, a ≤ c, a convenção de sinal da fronteira for atendida e os três coeficientes tiverem máximo divisor comum igual a um. Todos os testes usam aritmética exata de inteiros seguros. Os resultados são ordenados por a e depois por b, ambos crescentes.
Casos de uso
Conferir um exercício de número de classe
Compare uma lista obtida à mão com uma enumeração completa e ordenada de modo consistente.
Explorar discriminantes
Veja como as triplas e as contagens mudam entre discriminantes negativos fundamentais e não fundamentais.
Perguntas frequentes
Quais entradas são válidas?
Use um inteiro negativo congruente a 0 ou 1 módulo 4 e dentro da faixa publicada.
O que significa forma primitiva?
Uma forma [a, b, c] é primitiva quando o máximo divisor comum dos três coeficientes é um.
O que significa reduzida neste contexto?
A saída satisfaz |b| ≤ a ≤ c, com b não negativo quando ocorre qualquer igualdade de fronteira.
Duplicatas equivalentes são incluídas?
Não. As condições de redução escolhem um representante de cada classe de equivalência própria.
Um discriminante válido pode não retornar formas?
Sim. Um discriminante válido não fundamental pode não ter representantes primitivos; isso gera uma lista vazia, não um erro.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
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.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/numth/reduced-binary-forms \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"discriminant":-23}'const res = await fetch("https://api.kit.forhosting.com/numth/reduced-binary-forms", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"discriminant": -23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/reduced-binary-forms",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"discriminant": -23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/reduced-binary-forms", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"discriminant":-23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"discriminant":-23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/reduced-binary-forms", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"discriminant": -23
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.reduced_binary_forms",
"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.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
min_discriminant | -10000000 |
max_discriminant | -3 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Como escolher e validar um discriminante
Na API, você também pode usar o alias curto d, embora discriminant seja mais claro em código salvo.
Como a enumeração permanece exata e reproduzível
Não há rede, aleatoriedade, relógio, banco de dados ou tabela oculta; o cálculo funciona igualmente no navegador e pela API por US$ 0,002 por solicitação.
Casos de integração
Criar dados de teste exatos
Gere dados determinísticos para aulas de teoria dos números, scripts e testes de regressão.
Perguntas técnicas
Quanto custa?
Você pode executar gratuitamente no navegador desta página ou pagar US$ 0,002 por solicitação de API.