Combinações sem repetição
Escolher 3 itens entre 10 distintos, sem repetir e sem importar a ordem, dá 120 combinações. Informe o tamanho do conjunto e o do grupo para obter a contagem exata, mesmo com conjuntos muito grandes, para comissões, mãos de cartas ou amostras. 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
- N
- 10
- K
- 3
- Quantidade
- 120
Combinações sem repetição respondem a uma pergunta básica de contagem em estatística e matemática discreta: dados n itens distintos, quantos grupos diferentes de tamanho k você pode formar quando nenhum item aparece duas vezes e a ordem da seleção não importa? Essa quantidade é o coeficiente binomial C(n,k), também escrito n escolhe k. Não há amostragem, nem rede, nem arredondamento dependente de data: cada par válido (n, k) produz o mesmo inteiro todas as vezes.
O que as combinações sem repetição contam
Combinações sem repetição contam de quantas formas você pode escolher um subconjunto de k itens de um conjunto de n itens distintos quando cada item aparece no máximo uma vez e a ordem da seleção não importa. Na linguagem de sala de aula isso é n escolhe k; na notação estatística é o coeficiente binomial C(n,k). A identidade clássica diz que C(n,k) é o fatorial de n dividido pelo fatorial de k vezes o fatorial de (n menos k).
Essa mesma quantidade aparece como coeficiente na expansão binomial de (x mais y) elevado a n, e como o número de k-subconjuntos de um conjunto de n elementos. Como a ordem é ignorada, escolher Alice e depois Bob é a mesma combinação que escolher Bob e depois Alice, então a contagem é estritamente menor que a permutação correspondente P(n,k) sempre que k for pelo menos dois.
Como a repetição é proibida, você não pode escolher a mesma pessoa duas vezes: essa é a diferença em relação às combinações com repetição, também chamadas combinações de multiconjuntos, cuja contagem é C(n+k−1, k). Casos de fronteira fazem parte da definição: C(n,0) e C(n,n) valem ambos um, C(n,1) iguala n, e C(0,0) é um pela convenção do produto vazio. Se k é maior que n não existe k-subconjunto de um n-conjunto, então esta calculadora rejeita o par em vez de devolver zero ou um binomial generalizado.
A implementação nunca amostra, nunca depende do relógio e nunca arredonda: avalia o produto reduzido de (n menos k mais um) até n, dividido passo a passo de um até k, com aritmética BigInt exata para que coeficientes grandes permaneçam inteiros precisos em vez de estourar a mantissa de um ponto flutuante.
Usos em sala, amostragem e competições
Professores de estatística usam combinações sem repetição ao apresentar amostragem sem reposição: o número de comitês distintos de k pessoas de uma turma de n, o número de mãos de k cartas de um baralho de 52, ou o número de formas de retirar k unidades defeituosas de um lote de n em um esquema hipergeométrico. Esses problemas compartilham o mesmo inteiro C(n,k); esta página é escrita para quem busca essa frase de forma explícita, inclusive aprendizes que acabaram de ouvir para não confundir com combinações que permitem repetição.
Geradores de prova podem fixar o caminho de sucesso com n igual a dez e k igual a três, que produz cento e vinte, e o caminho de rejeição com qualquer k que exceda n, que deve falhar em vez de devolver zero. Programadores de competição e sandboxes de entrevista precisam de um oráculo exato para problemas de contagem de combinações sem reimplementar aritmética de multiprecisão em cada harness de linguagem.
Landings irmãos podem tratar permutações, combinações com repetição ou uma calculadora nCr genérica; este landing é especificamente o enunciado sem repetição. Combine a contagem com o seu próprio código de listagem se precisar dos subconjuntos reais; esta capacidade devolve somente o inteiro.
Casos de uso
Comitês e amostragem sem reposição
Conte quantos comitês distintos de k pessoas ou amostras de k itens você pode extrair de n pessoas ou unidades distintas quando a ordem não importa e ninguém é escolhido duas vezes.
Checagem de lições e provas de C(n,k)
Deixe os estudantes enviarem n e k e conferirem a resposta de combinações sem repetição calculada à mão com uma contagem determinística, inclusive a rejeição dura quando k excede n.
Competição e montagem hipergeométrica
Obtenha valores exatos de C(n,k) ao montar tabelas hipergeométricas ou julgar problemas de contagem de combinações, para que a camada inteira fique exata antes de qualquer passo de probabilidade.
Perguntas frequentes
O que são combinações sem repetição?
Elas contam as formas de escolher k itens de n itens distintos quando a ordem não importa e nenhum item pode ser escolhido duas vezes. O número é C(n,k) = n! / (k! × (n−k)!).
O que acontece se k for maior que n?
Você não pode escolher mais itens do que o conjunto contém quando a repetição é proibida, então k deve satisfazer 0 ≤ k ≤ n.
Qual é a diferença em relação às combinações com repetição?
Sem repetição cada item aparece no máximo uma vez (subconjuntos). Com repetição um item pode ser escolhido mais de uma vez (multiconjuntos), e a contagem é C(n+k−1, k) em vez de C(n,k).
Por que a contagem de combinações é uma string?
Valores grandes de C(n,k) ultrapassam os inteiros seguros de JavaScript. Uma string decimal conserva cada dígito exato para todo n e k suportados.
Quanto custa a calculadora de combinações sem repetição?
A ferramenta do navegador é gratuita e roda localmente.
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/stat/combinations-without-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10,"k":3}'const res = await fetch("https://api.kit.forhosting.com/stat/combinations-without-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10,
"k": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/combinations-without-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10,
"k": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/combinations-without-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10,"k":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10,"k":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/combinations-without-repetition", 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": 10,
"k": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.combinations_without_repetition",
"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 | 10000 |
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 calculadora aceita o par n e k, avalia a identidade exata fatorial de n sobre fatorial de k vezes fatorial de (n menos k) e devolve a contagem de combinações como um resultado JSON determinístico. Quando k é maior que n a seleção é impossível, então a tarefa falha com invalid_input em vez de inventar um zero ou uma extensão com sinal.
Como enviar n e k e ler a contagem
O campo n é o tamanho do conjunto distinto — o índice superior de C(n,k) — e deve ser um número inteiro de zero a dez mil. O campo k é quantos itens você escolhe sem devolver nenhum ao conjunto — o índice inferior — e deve ser um inteiro de zero até n. Uma resposta bem-sucedida ecoa n e k como números, devolve count como string decimal do valor exato da combinação e inclui formula como a identidade C(n,k)=n! /(k!( n-k)!) para que clientes possam exibir ou registrar a regra sem codificá-la. Use-o a partir de corretores de lição, validadores de competição de programação, sandboxes de preparação para entrevista, jobs de enriquecimento de planilha e demos de probabilidade que precisam de C(n,k) antes de qualquer passo em ponto flutuante. Envie um corpo JSON com dois inteiros não negativos obrigatórios. Os aliases total e N são aceitos com o mesmo significado. Os aliases r, choose e K mapeiam para k. Validação falha — n ou k ausentes, não inteiro, fração, valor negativo, valor acima do máximo publicado ou k maior que n — retorna invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida com unidade item. Prefira a contagem em string a forçar um Number de JavaScript para que coeficientes maiores que o limite de inteiros seguros nunca percam dígitos de baixa ordem no transporte JSON.
Usos em sala, amostragem e competições
Mantenha n no máximo em dez mil para que o pior caso C(10000,5000) termine rápido em um isolado Worker e no navegador, ainda cobrindo tamanhos de ensino e competição muito além da faixa segura de Number. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém baratos os scripts exploratórios quando o estudante digita um k impossível ao aprender o contrato.