Calculadora de produto de somas com maxtermos
O produto de somas canônico é a expressão booleana direta das linhas em que a tabela-verdade tem saída zero.
Executar grátis
Informe a quantidade de variáveis de entrada e os índices dessas linhas; a calculadora converte cada índice em sua atribuição binária, escreve o maxtermo correspondente e multiplica os termos de soma em uma única expressão POS canônica. O resultado também traz a notação compacta de produto de maxtermos, índices ordenados, nomes de variáveis e uma decomposição termo a termo pronta para conferir ou copiar.
Transforme linhas zero em maxtermos canônicos
A forma POS canônica começa pelas linhas da tabela-verdade nas quais a função booleana é zero. Numere as linhas na ordem binária comum, considerando a primeira variável como o bit mais significativo, e envie esses números como lista de maxtermos. Para cada linha escolhida, a calculadora completa a representação binária até a quantidade declarada de variáveis e cria uma soma que contém cada variável exatamente uma vez. O bit zero gera a variável sem complemento; o bit um gera a variável complementada, indicada por apóstrofo. Essa polaridade faz a soma resultante valer zero naquela atribuição específica. Por exemplo, 101 para A, B e C vira (A' + B + C'). A calculadora ordena os índices antes de montar o resultado, portanto uma entrada fora de ordem ainda produz a sequência canônica crescente. Índices repetidos são recusados porque a lista representa um conjunto de linhas e repetir um fator não acrescenta informação lógica. A decomposição mantém juntos o índice original, a linha binária preenchida, os literais e a soma completa para facilitar a verificação.
Leia e confira o resultado do produto de somas
A expressão principal posiciona todos os maxtermos lado a lado, indicando multiplicação booleana: cada termo OR entre parênteses é combinado por AND. A notação adicional usa ΠM seguido dos índices ordenados das linhas zero, formato compacto comum em disciplinas de lógica, especificações, mapas de Karnaugh e documentação de projetos digitais. A conferência é mecânica. Escolha um índice listado, atribua seus bits binários às variáveis e examine a soma correspondente. Todos os literais desse termo se tornam zero, fazendo o termo valer zero e forçando o produto inteiro a zero. Para uma linha que não consta da lista, nenhum maxtermo foi feito para zerar naquela atribuição completa; todas as somas permanecem em um e o produto vale um. Isso confirma que a expressão representa exatamente o conjunto de zeros enviado. A ordem das variáveis é preservada porque alterá-la muda a interpretação numérica de cada linha. Se você fornecer nomes personalizados, eles precisam ser identificadores válidos, únicos e em quantidade igual ao número de variáveis; caso contrário, nomes previsíveis são gerados.
Use a POS canônica no fluxo de projeto lógico
O produto de somas canônico é uma representação exata, mas não necessariamente o menor circuito. Ele funciona especialmente bem como ponte confiável entre a tabela-verdade e uma otimização posterior. Primeiro confirme as linhas zero, gere a expressão POS e use os termos detalhados para encontrar erros de índice, ordem dos bits ou complemento antes de simplificar. Depois, você pode agrupar zeros em um mapa de Karnaugh, aplicar álgebra booleana ou encaminhar a expressão para outro processo de minimização. Manter a forma canônica ao lado da forma reduzida oferece uma referência rastreável para demonstrar que a otimização não alterou a função. O método também auxilia em comportamentos ativos em nível baixo, projetos com decodificadores e documentação de vetores de teste, pois cada maxtermo aponta diretamente para uma atribuição desativada. As entradas são limitadas a dezesseis variáveis, e cada índice deve caber no intervalo da tabela correspondente. O cálculo é determinístico e não usa rede, estado salvo, aleatoriedade nem relógio. O uso no navegador é gratuito; uma execução automatizada pela API custa US$ 0,002.
Casos de uso
Converta uma tabela-verdade em POS
Transforme as linhas de saída zero em um produto de somas completo sem inverter manualmente a polaridade dos literais.
Prepare um mapa de Karnaugh
Confira os maxtermos e suas atribuições binárias antes de agrupar zeros e minimizar a função lógica.
Documente lógica combinacional
Inclua a notação ΠM e uma expressão expandida e rastreável em projetos, exercícios ou registros de verificação.
Perguntas frequentes
O que é um maxtermo?
É um termo OR que contém cada variável de entrada uma vez e vale zero para exatamente uma atribuição da tabela-verdade.
Por que o bit zero gera uma variável sem complemento?
Todo literal do maxtermo deve ser zero na linha indexada. A variável direta zera com bit zero; a complementada, com bit um.
Qual variável corresponde ao bit mais significativo?
A primeira variável da ordem de saída. Nomes personalizados seguem a mesma ordem.
A calculadora minimiza a expressão POS?
Não. Ela cria a POS canônica exata, com um maxtermo para cada linha zero informada. A minimização é uma etapa separada.
Posso enviar os maxtermos em qualquer ordem?
Sim. Os índices válidos são ordenados de forma crescente, e os duplicados são recusados.
Quanto custa?
Você pode executar gratuitamente no navegador. Cada solicitação à API custa US$ 0,002.
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/elec/pos-maxterms \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"variables":3,"maxterms":[0,2,5,7]}'const res = await fetch("https://api.kit.forhosting.com/elec/pos-maxterms", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"variables": 3,
"maxterms": [
0,
2,
5,
7
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/pos-maxterms",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"variables": 3,
"maxterms": [
0,
2,
5,
7
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/pos-maxterms", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"variables":3,"maxterms":[0,2,5,7]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"variables":3,"maxterms":[0,2,5,7]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/pos-maxterms", 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
{
"variables": 3,
"maxterms": [
0,
2,
5,
7
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.pos_maxterms",
"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
max_items | 65536 |
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. |