Calculadora de permutações e combinações
Descubra de quantas maneiras é possível escolher r itens de um total de n: escolher 2 de 5 dá 10 combinações quando a ordem não importa, enquanto as permutações contam cada ordem separadamente. Resultados inteiros exatos para n de até 1000. 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
- Total de itens (n)
- 5
- Itens selecionados (r)
- 2
- Modo de cálculo
- C
- Resultado
- 10
Informe n, r e o modo para obter um inteiro exato em string.
P e C
P(n,r) counts ordered selections of r items from n without replacement; C(n,r) counts unordered selections. Integers n and r must be between 0 and 1000 with r less than or equal to n. Mode accepts P, p, permutation, perm or C, c, combination, comb and normalizes the echo to a single capital letter after trim.
Os resultados não chamam a rede, não leem o relógio do sistema e não dependem do locale do anfitrião. Esta superfície curta e assinada permite a dois oráculos independentes obterem zero divergências em trinta vetores sem partilhar código de implementação entre si de forma alguma.
Produtos BigInt exatos
Permutations multiply a descending product of r factors starting at n. Combinations perform exact integer division by each successive index after optionally replacing r with min(r, n-r). Floats, booleans and padded zeros like 01 are rejected on the offending field.
Os resultados não chamam a rede, não leem o relógio do sistema e não dependem do locale do anfitrião. Esta superfície curta e assinada permite a dois oráculos independentes obterem zero divergências em trinta vetores sem partilhar código de implementação entre si de forma alguma.
Erros tipados e limites
A leading minus is reported as negativo before the field name. Values above one thousand fail on n or r. When r is greater than n the match is range.
Empty strings, plus signs and decimal points are format errors. Independent oracles can agree on every signed vector without reading implementation code. Os resultados não chamam a rede, não leem o relógio do sistema e não dependem do locale do anfitrião.
Esta superfície curta e assinada permite a dois oráculos independentes obterem zero divergências em trinta vetores sem partilhar código de implementação entre si de forma alguma.
Saída para pipelines
Success always returns normalized integers n and r, mode as P or C, result as a minimal decimal string, and formula such as C(5,2). Version one skips repetitions, multinomials and non-integer inputs so the signed surface stays auditable. Os resultados não chamam a rede, não leem o relógio do sistema e não dependem do locale do anfitrião.
Esta superfície curta e assinada permite a dois oráculos independentes obterem zero divergências em trinta vetores sem partilhar código de implementação entre si de forma alguma.
Casos de uso
Homework
nPr/nCr checks.
Draws
C(n,r) counts.
Orders
P(n,r) counts.
CI
Exact strings.
Perguntas frequentes
Qual a diferença entre permutação e combinação?
A permutação conta seleções ordenadas, então escolher A e depois B é diferente de B e depois A. A combinação ignora a ordem. Escolher 2 de 5 dá 10 combinações e o dobro de permutações, porque cada par admite duas ordens.
Qual delas uso para sorteios de loteria?
Use a combinação, porque a ordem em que os números saem não muda o bilhete. Para distribuir lugares à mesa ou posições de um pódio, em que a ordem importa, use a permutação.
O r pode ser maior que o n?
Não. Não dá para escolher mais itens do que existem, então r precisa ser igual ou menor que n. Os dois devem ser inteiros de 0 a 1000, e qualquer valor fora dessa faixa é recusado.
Ela conta seleções com repetição?
Não. Todas as contas supõem que um item já escolhido não pode ser escolhido de novo. Seleções com repetição e contagens multinomiais não estão incluídas, então confirme que o seu problema é sem reposição.
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/dev/permutation-combination \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"r":2,"mode":"C"}'const res = await fetch("https://api.kit.forhosting.com/dev/permutation-combination", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"r": 2,
"mode": "C"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/permutation-combination",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"r": 2,
"mode": "C"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/permutation-combination", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"r":2,"mode":"C"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"r":2,"mode":"C"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/permutation-combination", 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
{
"n": 5,
"r": 2,
"mode": "C"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.permutation_combination",
"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_n | 1000 |
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
P e C
Unknown modes return typed invalid_input on mode.
Produtos BigInt exatos
Every step uses BigInt so P(1000,3) and C(30,5) become exact decimal strings without scientific notation or IEEE surprises.
Erros tipados e limites
Missing n, r or mode yields invalid_input with a clear match.
Perguntas técnicas
r > n?
range
Decimals?
No v1
Max n?
1000
result type?
decimal string
Browser free?
Yes; API US$ 0,002
Float?
No BigInt only