Permutação com elementos repetidos
As letras de BANANA podem ser reorganizadas em 60 palavras diferentes: 6 letras, com o A três vezes e o N duas. Informe o total e quantas vezes cada item idêntico se repete para receber o número exato de ordenações distintas. 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
- 6
- Repetições
- 3, 2, 1
- Quantidade
- 60
A permutação com repetição, quando se parte de um total e das frequências de itens idênticos, conta quantos arranjos ordenados distintos uma coleção mista admite. Se você tem n objetos e alguns são cópias indistinguíveis, o número de sequências diferentes é o fatorial de n dividido pelo produto do fatorial de cada frequência listada. Esta calculadora aceita esse par — o total n e a lista de frequências —, avalia a identidade com aritmética BigInt exata e devolve a contagem de permutações como uma cadeia decimal. Não há amostragem, nem chamada de rede, nem arredondamento dependente do relógio: cada par válido produz o mesmo inteiro todas as vezes.
O que uma permutação com itens idênticos repetidos conta
Uma permutação com repetição de itens idênticos é o número de arranjos ordenados distintos de uma coleção finita em que alguns membros não podem ser distinguidos. Escreva n para o número total de posições (ou objetos) e n1, n2, até nk para quantas vezes cada tipo indistinguível aparece. Como trocar duas cópias do mesmo tipo não cria um arranjo novo, as n fatorial ordenações de uma coleção totalmente rotulada supercontam em n1 fatorial para o primeiro tipo, n2 fatorial para o segundo, e assim por diante.
A identidade exata é, portanto, o fatorial de n dividido pelo produto desses fatoriais. As verificações clássicas de sala incluem as letras de BANANA: seis letras, três A, dois N e um B, o que dá o fatorial de seis sobre o fatorial de três vezes o fatorial de dois vezes o fatorial de um, igual a sessenta palavras distintas, e MISSISSIPPI: onze letras com frequências um, quatro, quatro e dois, que dá o fatorial de onze sobre esses fatoriais, igual a trinta e quatro mil seiscentos e cinquenta.
Isto não é o produto n elevado a r que alguns manuais também chamam de permutações com repetição: aquela outra contagem preenche r casas independentes a partir de um alfabeto de n símbolos e vale n elevado a r. Aqui o comprimento já é n, e a entrada é a frequência de cada grupo idêntico. Se uma frequência listada for maior que n, a coleção é impossível e esta calculadora rejeita o pedido em vez de devolver zero ou uma extensão com sinal.
Frequências que somam menos que n deixam itens únicos restantes; cada restante contribui com um fatorial de um no denominador e não altera o inteiro, de modo que a mesma fórmula continua a valer. A implementação nunca amostra, nunca depende do relógio e nunca arredonda: avalia o fatorial de n sobre o produto dos fatoriais listados com aritmética BigInt exata para que contagens grandes permaneçam inteiros precisos em vez de transbordar a mantissa de um número em ponto flutuante.
Anagramas, assentos e oráculos de competição
Professores de língua e autores de quebra-cabeças usam esta contagem quando perguntam quantas palavras distintas podem ser formadas reordenando uma cadeia dada: as letras são os itens, o histograma de cada letra é a lista de contagens de repetição, e a resposta é exatamente o fatorial de n sobre o produto desses fatoriais. Problemas de química e genética que arranjam contas, bases ou assentos coloridos com cópias indistinguíveis seguem o mesmo inteiro.
Instrutores de estatística o apresentam ao contrastar amostragem com resultados idênticos frente ao produto n elevado a r que preenche casas independentes, e programadores de competição precisam de um oráculo exato para não reimplementar a divisão fatorial de multiprecisão em cada harness de linguagem. Geradores de prova podem fixar o caminho de sucesso com n igual a seis e repeats iguais a três, dois e um, que produz sessenta, e o caminho de rejeição com qualquer frequência maior que n, que deve falhar em vez de devolver zero.
Páginas irmãs podem tratar o produto n elevado a r de seleções ordenadas com reposição, o coeficiente multinomial genérico ou permutações sem repetição; este destino é especificamente o enunciado permutação com repetição quando as entradas são um total e as contagens de repetição de itens idênticos. Combine a contagem com seu próprio código de listagem se precisar das cadeias distintas concretas; esta capacidade devolve apenas o inteiro.
Casos de uso
Anagramas distintos de uma palavra com letras repetidas
Conte quantos rearranjos distintos uma palavra como BANANA ou MISSISSIPPI tem enviando o total de letras n e o histograma de cada letra repetida.
Checagem de lição e prova para n! / n1! n2! …
Deixe os estudantes enviarem um total e as contagens de repetição de itens idênticos e conferirem a resposta de permutação com repetição calculada à mão, inclusive a rejeição dura quando uma frequência excede n.
Oráculos de competição e assentos com vagas idênticas
Obtenha uma contagem exata de arranjos ao julgar problemas de permutação de multiconjuntos ou ao dimensionar planos de assentos que misturam cópias indistinguíveis com itens únicos restantes.
Perguntas frequentes
O que é uma permutação com repetição de itens idênticos?
Conta os arranjos ordenados distintos de n itens quando alguns não se distinguem. Se as contagens de repetição são n1, n2, … nk, o número é n! / (n1! × n2! × … × nk!).
O que acontece se uma contagem de repetição for maior que o total?
Um grupo de itens idênticos não pode ocupar mais posições do que a coleção contém, então cada frequência listada deve satisfazer 0 ≤ ni ≤ n.
Qual a diferença em relação às permutações n elevado a r com repetição?
O produto n^r preenche r casas independentes a partir de um alfabeto de n símbolos (a ordem importa e a reutilização é permitida). Esta página, em vez disso, toma um total fixo n e as frequências de cópias idênticas e devolve n! / (n1! n2! … nk!).
Por que a contagem da permutação é uma cadeia?
Valores grandes de n! / (n1! n2! …) ultrapassam os inteiros seguros de JavaScript. Uma cadeia decimal mantém cada dígito exato para todo n suportado e toda lista de contagens de repetição.
Quanto custa a calculadora de permutação com 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/permutation-with-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":6,"repeats":[3,2,1]}'const res = await fetch("https://api.kit.forhosting.com/stat/permutation-with-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 6,
"repeats": [
3,
2,
1
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/permutation-with-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 6,
"repeats": [
3,
2,
1
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/permutation-with-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":6,"repeats":[3,2,1]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":6,"repeats":[3,2,1]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/permutation-with-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": 6,
"repeats": [
3,
2,
1
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.permutation_with_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
Quando alguma frequência listada é maior que n, a solicitação falha com invalid_input, porque um grupo não pode ocupar mais assentos do que a coleção contém.
Como enviar o total e as contagens de repetição
O campo n é o número total de itens — o índice do numerador do fatorial de n — e deve ser um inteiro de zero a dez mil. O campo repeats é um array não vazio de inteiros não negativos, uma entrada por grupo indistinguível, listando quantas cópias idênticas aquele grupo contribui. A soma das frequências também deve permanecer no máximo n; caso contrário as cópias listadas transbordariam a coleção. Uma resposta bem-sucedida ecoa n e o array repeats normalizado, devolve count como cadeia decimal do valor exato da permutação e inclui formula como a identidade n! /(n1! n2! … nk!) para que os clientes possam exibi-la ou registrá-la sem codificá-la à mão. Envie um corpo JSON com dois campos obrigatórios. Os alias total e N são aceitos com o mesmo significado. Os alias repeat_counts e frequencies mapeiam para o mesmo array. Cada frequência deve ser um inteiro de zero até n inclusive; se alguma entrada for maior que n, a tarefa falha com invalid_input e uma mensagem de que a contagem de repetição excede o total. Validação falha — n ou repeats ausentes, um não inteiro, uma fração, um valor negativo, um valor acima do máximo publicado, um array vazio ou qualquer frequência que exceda n — devolve invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por solicitação bem-sucedida com unidade item. Use o endpoint a partir de verificadores de anagramas, validadores de competições de programação, sandboxes de preparação para entrevistas, jobs de enriquecimento de planilhas e demonstrações de matemática discreta que precisam da contagem de arranjos distintos antes de qualquer passo de probabilidade. Prefira a contagem em cadeia a forçar um Number de JavaScript para que valores maiores que o limite de inteiros seguros nunca percam dígitos de ordem baixa no transporte JSON.
Anagramas, assentos e oráculos de competição
Mantenha n no máximo em dez mil para que o pior fatorial ainda termine depressa em um isolamento Worker e no navegador, cobrindo tamanhos de ensino e de competição muito acima da faixa segura de Number. Tarefas falhas que devolvem invalid_input não consomem saldo pré-pago, o que mantém baratos os scripts exploratórios quando o estudante digita uma frequência impossível enquanto aprende o contrato. Como a implementação é parse puro, cada chamada bem-sucedida custa o US$ 0,002 publicado, sem tokens de modelo e sem rede de saída.