Permuta Simples - Permutação Simples, Circular e com Repetição
Permutação Simples, Circular e com Repetição

O que é permuta simples na prática

Você já precisou calcular quantas formas existem para organizar um conjunto de elementos e travou na hora de aplicar a fórmula? A permuta simples é basicamente isso: o número de maneiras distintas de arranjar todos os n elementos de um conjunto. A conta é n!, ou seja, o fatorial de n. Isso significa n multiplicado por n-1, depois por n-2, e assim por diante até chegar em 1. Eu vi gente complicar demais isso no dia a dia. Uma vez, num projeto de programação, precisei listar todas as permutações de uma string de 6 caracteres para testar um algoritmo de criptografia. O resultado foram 720 combinações. Simples assim. E se você pensar que era só 6! — bem, era exatamente isso.

Como calcular a permuta simples passo a passo

A fórmula da permuta simples é: P(n) = n! = n × (n-1) × (n-2) × ... × 3 × 2 × 1. O caso base é que 0! = 1 por definição, não por cálculo. Vou dar um exemplo rápido. Se você tem 5 livros para colocar numa estante, a resposta é 5! = 5 × 4 × 3 × 2 × 1 = 120. Cada posição na prateleira é um lugar diferente, então a ordem importa. Isso é o que diferencia permutação de combinação.

Outro detalhe que muita gente esquece: a permuta simples exige que todos os elementos sejam distintos. Se tiver itens repetidos dentro do seu conjunto, a conta muda completamente. Isso aí vira permutação com repetição, e o cálculo é n! dividido pelo fatorial de cada repetição. Confuso no começo, mas é a regra. Na prática, quando eu preciso gerar permutações de verdade — tipo num script Python — uso itertools.permutations(). Mas entenda o que está por trás: é essencialmente uma busca em profundidade que troca posições recursivamente. O tempo de execução cresce fatorialmente, o que significa que para n maior que 10 o problema já fica inviável para quase qualquer máquina comum.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Erros comuns e limitações reais

O erro mais frequente é confundir permutação simples com arranjo. No arranjo, você escolhe k elementos dentre n e a ordem importa. Na permutação simples, você usa TODOS os n elementos. A diferença parece óbvia até você se mandar mal numa prova ou num código de produção. Também tem o problema de usar a fórmula cegamente. Se o conjunto tiver elementos duplicados — por exemplo, as letras da palavra "BANANA" — você não pode simplesmente calcular 6!. Precisa dividir por 3! (pelo 'A' repetido três vezes) e por 2! (pelo 'N' repetido duas vezes). O resultado correto é 6! / (3! × 2!) = 60 permutações distintas.

E falando em limitações: permuta simples escala atrocamente. Para n=12, você tem 479 milhões de combinações. Para n=15, passa de 1 trilhão. Se o seu objetivo é enumerar todas as permutações, esqueça a partir de n=13 se quiser fazer isso num computador doméstico em tempo razoável. Nesses casos, técnicas como backtracking com poda ou algoritmos genéticos são mais viáveis dependendo do que você precisa extrair das combinações. Um detalhe técnico que aprendi na marra: em algumas linguagens, calcular fatorial de números grandes pode estourar o tipo inteiro. Em C, por exemplo, um int de 32 bits comporta fatorial só até 12. A partir daí, use long long ou bibliotecas deBigInt. Eu perdi duas horas debugando um problema desses achando que o algoritmo estava errado, quando na verdade o número já tinha transbordado o tipo.

Se quiser testar a permuta simples na mão, existem calculadoras online que mostram o passo a passo, mas o mais rápido é sempre escrever um script simples. Um loop de 10 linhas resolve na maioria dos casos práticos e ainda te dá flexibilidade para modificar o comportamento conforme a necessidade.