Calculadora do princípio fundamental da contagem
Três camisas, quatro calças e dois pares de sapatos formam 24 combinações de roupa diferentes. Informe quantas opções cada etapa oferece e receba o número exato de combinações, mesmo quando o resultado tem centenas de dígitos. 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
- Estágios
- 3, 4, 2
- Total
- 24
- Estágios
- 3
- Contagens
- 3, 4, 2
- Dígitos
- 2
O princípio fundamental da contagem — também chamado de regra da multiplicação — afirma que, quando um processo acontece em etapas e cada etapa oferece um número fixo de opções, o número total de resultados possíveis é simplesmente o produto dessas quantidades. Três camisas, quatro calças e dois pares de sapatos formam 3 × 4 × 2 = 24 combinações.
O que a regra da multiplicação realmente diz
Imagine uma decisão tomada em vários passos independentes. No primeiro passo você pode escolher uma entre c1 opções; tenha escolhido o que tiver escolhido, o segundo passo continua oferecendo c2 opções; o terceiro oferece c3, e assim por diante. O princípio fundamental da contagem estabelece que o número total de percursos completos e distintos por todos os passos é c1 × c2 × … × ck.
Um cardápio com quatro entradas, seis pratos principais e três sobremesas produz, portanto, 4 × 6 × 3 = 72 refeições diferentes de três tempos. A suposição fundamental é que o número de opções em cada etapa não depende do que foi escolhido antes: cada ramo da árvore de decisão tem a mesma ramificação em um determinado nível. Quando essa suposição se confirma, nunca é preciso desenhar a árvore — uma única multiplicação fornece a contagem.
Aritmética exata para contagens muito grandes
Os produtos crescem rápido, e é exatamente por isso que os problemas de contagem são resolvidos com multiplicação, e não com enumeração. Dez etapas com dez opções cada uma já produzem dez bilhões de resultados, e espaços de configuração realistas — senhas, placas de veículos, variantes de produto, mapas de assentos — costumam superar o que um número de ponto flutuante de 64 bits consegue representar com exatidão. Os números do JavaScript perdem precisão silenciosamente além de 2^53, o que corromperia uma contagem como 26^10.
Esta calculadora realiza todo o produto com inteiros grandes de precisão arbitrária, de modo que cada dígito da resposta é exato, e devolve o total como uma string decimal para que nenhum tipo numérico do lado do cliente o corrompa na recepção. Os limites práticos são generosos, e não infinitos: até mil etapas, cada uma com contagem de até um bilhão.
Validando suas entradas e lendo a saída
Cada quantidade de etapa deve ser um inteiro positivo. O zero é rejeitado — uma etapa com zero opções torna todo o processo impossível, e devolver zero silenciosamente esconderia um erro de modelagem — assim como frações, números negativos e strings não numéricas. Quando a entrada é válida, a resposta repete as quantidades normalizadas, informa quantas etapas foram multiplicadas e fornece o total como uma string decimal junto com o número de dígitos.
Casos de uso
Contar combinações de cardápios ou produtos
Multiplique as opções por categoria — tamanhos, cores, acabamentos — para saber quantas variantes distintas um catálogo realmente contém.
Dimensionar um espaço de senhas ou códigos
Calcule 10^6 para um PIN de seis dígitos ou 26^8 para um código de oito letras para avaliar a resistência à força bruta em uma revisão de segurança.
Gerar exercícios para uma aula de matemática
Insira quantidades por etapa aleatórias a partir de um roteiro de aula e obtenha o gabarito exato de problemas da regra da multiplicação sem aritmética manual.
Perguntas frequentes
Quanto custa?
Também é grátis executar no seu navegador nesta página — o mesmo código alimenta as duas opções.
O que é o princípio fundamental da contagem?
A regra que diz que, quando um processo tem etapas com c1, c2, ..., ck opções cada uma, o número total de resultados é o produto c1 × c2 × … × ck.
Por que o zero é rejeitado como quantidade de etapa?
Uma etapa com zero opções significa que não existe nenhum resultado completo. Devolver um erro em vez de um zero silencioso evidencia o que quase sempre é um erro de modelagem.
Quão grande o resultado pode ser?
Arbitrariamente grande dentro dos limites: até 1000 etapas com contagens de até 1000000000 cada. O total é calculado com inteiros grandes e devolvido como uma string decimal exata.
Minha entrada fica armazenada?
Não. As quantidades são multiplicadas em memória e descartadas; apenas o resultado é devolvido.
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/math/fundamental-counting-principle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"stages":[3,4,2]}'const res = await fetch("https://api.kit.forhosting.com/math/fundamental-counting-principle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"stages": [
3,
4,
2
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/fundamental-counting-principle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"stages": [
3,
4,
2
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/fundamental-counting-principle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"stages":[3,4,2]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"stages":[3,4,2]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/fundamental-counting-principle", 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
{
"stages": [
3,
4,
2
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.fundamental_counting_principle",
"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_stages | 1000 |
max_count | 1000000000 |
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
Esta API recebe um array com as quantidades de opções por etapa e devolve esse produto de forma exata, usando aritmética de inteiros grandes para que a resposta continue precisa mesmo quando tem centenas de dígitos.
O que a regra da multiplicação realmente diz
Este endpoint codifica exatamente essa regra: você envia as quantidades por etapa como um array e recebe o produto exato junto com o número de etapas e o comprimento em dígitos do resultado, para poder conferir as magnitudes de relance.
Aritmética exata para contagens muito grandes
Isso cobre qualquer exercício de livro didático e qualquer espaço de configuração real com o qual você provavelmente vá trabalhar via script, mantendo a versão gratuita do navegador instantânea e o custo da API limitado.
Validando suas entradas e lendo a saída
Quando a validação falha, a API responde com um erro invalid_input que indica a posição exata do problema, por exemplo stages[2], para que um script possa expor o problema diretamente. Use a ferramenta do navegador nesta página para experimentar interativamente — ela executa exatamente o mesmo código da API — e mude para a API quando precisar incorporar a contagem em um gerador de lições, um sistema de estoque ou uma suíte de testes. Cada requisição à API custa US$ 0,002, sem armazenamento dos seus dados: os números são calculados e descartados.