Como calcular combinações com repetição na prática
A maioria dos estudantes de matemática encontra esse tópico de surpresa durante um curso de combinatorics ou probabilidade. O conceito em si não é particularmente complicado, mas aplicar o método errado pode te levar horas para resolver problemas que levam minutos se você souber a abordagem correta. Vou explicar como isso funciona de verdade, não apenas a definição de livro.
O que realmente é a fórmula combinação com repetição
Quando você precisa escolher elementos de um conjunto onde a ordem não importa e itens podem ser repetidos, a fórmula combinação com repetição (também chamada de combinações com repetição ou arranjos combinatórios com repetição) é a ferramenta certa. A notação matemática padrão usa C(n+k-1, k) ouamente C(n+k-1, n-1), onde n é o número de tipos de itens disponíveis e k é quantos você vai escolher. O raciocínio por trás da fórmula vem do método das estrelas e barras. Imagine que você tem n tipos diferentes de objetos e precisa selecionar k deles. Você representa cada seleção como uma estrela (*) e usa barras (|) para separar os diferentes tipos. Se você tem 3 tipos de frutas (maçã, banana, laranja) e quer escolher 5, por exemplo, uma possibilidade seria |*|| que representa 2 maçãs e 3 bananas. O número total de posições é sempre k estrelas mais n-1 barras, e o problema se reduz a contar em quantas formas podemos dispor esses símbolos.
Eu já vi gente confundi com permutações com repetição porque os nomes são similares, mas a diferença é fundamental. Permutação leva em conta a ordem, combinação não. Quando você está formando uma salada com 5 ingredientes de um menu de 8, a ordem não faz diferença — isso é combinação com repetição, não permutação. Já se você estiver organizando livros em uma prateleira onde a sequência importa, aí é outra história completamente.
Cálculo passo a passo com exemplos reais
Vamos fazer um exemplo concreto. Suponha que você tem 4 sabores de sorvete disponíveis e quer escolher 3 cones, podendo repetir sabores. Aqui n=4 e k=3. Aplicando a fórmula: C(4+3-1, 3) = C(6, 3) = 6! / (3! × 3!) = 720 / (6 × 6) = 20 combinações possíveis.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Para verificar, você pode listar mentalmente: todas as combinações de três sabores iguais (4 possibilidades), todas com dois iguais e um diferente (12 possibilidades), e todas com três sabores diferentes (4 possibilidades). Total: 4 + 12 + 4 = 20. Confere. Outro exemplo mais próximo do que eu vejo nas provas. Quantas soluções inteiras não negativas existem para x1 + x2 + x3 = 7? Esse é classicamente resolvido com combinações com repetição: C(7+3-1, 7) = C(9, 7) = C(9, 2) = 36. A transformação é direta — você vê o problema como distribuir 7 unidades idênticas em 3 recipientes distinguíveis.
O cálculo de fatoriais pode crescer rapidamente. C(20+5-1, 5) = C(24, 5) = 42.504. Trabalhar com números assim manualmente é trabalhoso. Usar uma calculadora ou script simples é mais prático do que tentar fazer tudo de cabeça.
Problemas edge-case que eu encontrei
Uma vez, num projeto de análise de dados, precisei calcular combinações com repetição para determinar o espaço amostral de um sistema de senhas onde os caracteres podiam se repetir mas a ordem não importava — uma situação incomum que surge em problemas de criptografia combinatória. O desafio foi que o conjunto de caracteres era grande (94 caracteres ASCII imprimíveis) e precisava escolher sequências de até 12 caracteres. O número resultante foi astronômico: C(94+12-1, 12) = C(105, 12), que é aproximadamente 1,5 trilhões de combinações. O workaround que funcionei foi processar em etapas, calculando C(105, 12) de forma incremental usando aritmética de big integers em Python, em vez de tentar calcular o fatorial completo de 105!. Isso evita overflow e mantém a precisão. Em linguagens como JavaScript, você precisaria de bibliotecas como BigInt ou especializadas para lidar com esses tamanhos de número.
Limitações e armadilhas comuns
A principal limitação da fórmula combinação com repetição é que ela assume elementos idênticos dentro de cada tipo. Se você tiver restrições como "no máximo 2 unidades do tipo A" ou "pelo menos 1 do tipo B", a fórmula direta não se aplica mais. Nesses casos, você precisa usar princípios de inclusão-exclusão ou gerar funções, o que aumenta significativamente a complexidade computacional. Outro problema frequente: confundir n e k. Muitos estudantes identificam errado qual é o número de tipos disponíveis versus quantos elementos estão sendo escolhidos. Lembre-se: n é sempre o tamanho do conjunto de tipos, e k é o número de seleções. Inverter esses valores muda completamente o resultado. Eu já perdi pontos em provas por fazer isso.
Para problemas com restrições de limites superiores por tipo, a abordagem de geração de funções é mais robusta. Por exemplo, se você tem no máximo 2 de cada um dos 3 tipos e quer escolher 4 itens, a fórmula direta falharia. O método correto usa coeficientes de polinômios: o coeficiente de x^4 em (1+x+x²)³ dá a resposta, que neste caso é 3. Em resumo, a fórmula combinação com repetição é uma ferramenta poderosa mas com escopo definido. Conhecer seus limites é tão importante quanto saber aplicá-la quando o problema se encaixa no modelo correto.