Permutações com repetição
Conte sequências ordenadas em que os símbolos podem se repetir: 5 símbolos em 3 posições dão 125 possibilidades, 5^3, a mesma regra do produto por trás de códigos e senhas. 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úmero de símbolos distintos
- 5
- Resistência (Ω)
- 3
- Valor
- 125
- Quantidade
- 125
As permutações com repetição respondem a uma pergunta simples de contagem: se você tem n símbolos distintos e forma sequências ordenadas de comprimento r em que o mesmo símbolo pode aparecer mais de uma vez, quantas sequências existem? A regra do produto multiplica n escolhas em cada uma das r posições, de modo que o total é exatamente n elevado à potência r. Essa fórmula aparece em espaços de senhas, códigos PIN, colorações de cadeias de comprimento fixo, amostragem com reposição e inúmeros problemas de matemática discreta em que a resposta deve ser um inteiro exato e não uma aproximação de ponto flutuante. Esta capacidade aceita um inteiro positivo n (o tamanho do alphabet) e um inteiro não negativo r (o comprimento da sequência) e devolve a contagem exata como string decimal calculada com aritmética BigInt, de forma que valores muito além dos limites habituais de inteiros seguros permanecem corretos dígito a dígito. Entradas com n abaixo de um ou com r negativo são rejeitadas com um erro de validação claro em vez de uma resposta errada silenciosa.
Como as permutações com repetição são definidas
Uma seleção ordenada de r posições a partir de n símbolos com repetição permitida é qualquer sequência s1, s2, …, sr em que cada si pertence a um conjunto fixo de tamanho n. Como a ordem importa e os símbolos podem se repetir, a primeira posição tem n opções, a segunda novamente tem n opções, e assim por diante em cada posição até r. O princípio fundamental da contagem multiplica essas escolhas independentes em n × n × … × n, que é n elevado à potência r.
Quando r é igual a zero existe exatamente uma sequência vazia, em conformidade com a convenção algébrica de que qualquer n positivo elevado à potência zero é igual a um. Isso difere das permutações sem repetição, que proíbem o reuso e produzem o fatorial decrescente n × (n − 1) × … × (n − r + 1), e das combinações, que ignoram a ordem.
Verificações clássicas de livro incluem dois símbolos de comprimento três gerando oito sequências, cinco símbolos de comprimento dois gerando vinte e cinco, e dez símbolos de comprimento zero gerando um. Esta implementação nunca usa potência de ponto flutuante, logaritmos aproximados nem amostragem: calcula a potência inteira exata com exponenciação binária BigInt para que cada dígito fique correto. O caminho é plenamente determinístico — sem sementes aleatórias, sem relógios, sem rede e sem deriva de modelo —, de modo que o mesmo n e r sempre produzem a mesma string.
Onde a contagem n elevado a r aparece no trabalho real
Equipes de segurança e de produto estimam espaços de senha ou PIN tratando cada posição de caractere como uma escolha em um alphabet de tamanho n e comprimento r, que é exatamente a contagem de permutações com repetição n elevado a r; inteiros exatos ajudam a comparar a força dos esquemas sem aproximações logarítmicas.
Competições de programação e cursos de matemática discreta pedem com frequência o número de palavras de comprimento r sobre um alphabet de n letras, colorações de r contas com n cores quando a ordem importa e as cores podem se repetir, ou funções de um conjunto de tamanho r em um conjunto de tamanho n — todas iguais a n elevado a r.
Pipelines de dados e amostragem que modelam sorteios ordenados com reposição precisam do mesmo produto ao dimensionar espaços amostrais ou validar montagens de Monte Carlo contra um total analítico. Educadores e preparação para entrevistas costumam mostrar uma tabela curta de valores pequenos de n e r; calcular a contagem em uma única chamada mantém demos interativas alinhadas a livros-texto e gabaritos.
Se mais adiante você precisar de permutações sem repetição, combinações com ou sem repetição, ou a listagem das tuplas reais em vez da contagem, trate-as como intenções de busca separadas em vez de sobrecarregar esta página.
Casos de uso
Tamanho do espaço de senhas e PIN
Calcule espaços exatos n^r de alphabet para códigos de comprimento fixo e compare tamanhos de esquema sem aproximações logarítmicas de ponto flutuante.
Amostragem e contagem de funções
Dimensione espaços amostrais ordenados com reposição e conte funções de r posições em n símbolos para revisões de projeto.
Perguntas frequentes
O que são permutações com repetição?
São sequências ordenadas de comprimento r tomadas de n símbolos em que o mesmo símbolo pode aparecer mais de uma vez. A contagem total é exatamente n elevado à potência r.
Em que isso difere das permutações sem repetição?
Sem repetição cada símbolo pode ser usado no máximo uma vez, o que dá o fatorial decrescente n×(n−1)×…×(n−r+1). Com repetição o reuso é permitido, então a contagem é n^r.
O que acontece se n for menor que 1 ou r for negativo?
Esta calculadora exige n ≥ 1 e r ≥ 0; limites inválidos são rejeitados e não são cobrados.
Por que a contagem é uma string em vez de um número?
As potências ultrapassam rapidamente os inteiros seguros do JavaScript. Strings decimais mantêm cada dígito exato para valores grandes de n^r.
Quanto custa?
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/combo/permutations-with-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"r":3}'const res = await fetch("https://api.kit.forhosting.com/combo/permutations-with-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"r": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/permutations-with-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"r": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/permutations-with-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"r":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"r":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/permutations-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": 5,
"r": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.permutations_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
min_n | 1 |
max_n | 10000 |
min_r | 0 |
max_r | 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
A ferramenta gratuita do navegador e a API paga compartilham uma única função pura, para que demos de sala de aula e pipelines automatizados nunca divirjam no mesmo par.
Como as permutações com repetição são definidas
Os limites declarados mantêm n entre um e dez mil e r entre zero e dez mil para que a latência no pior caso permaneça adequada a uma ferramenta gratuita no navegador e a um caminho Worker leve, ainda cobrindo necessidades de competições, sala de aula e pipelines para contagens grandes exatas.
O que você envia e o que recebe de volta
A contagem de símbolos n deve ser um inteiro de um a dez mil inclusive; o comprimento r deve ser um inteiro de zero a dez mil inclusive. As mensagens de erro nomeiam o campo ofensor e a regra que falhou para que clientes de formulário e scripts corrijam a entrada sem adivinhar. Em caso de sucesso a resposta sempre inclui o n e r normalizados, count e value como a mesma string decimal exata de n elevado a r, e uma string formula curta como cinco caret três para exibição. Forneça um inteiro obrigatório n no campo n (aliases symbols ou alphabet) e um inteiro obrigatório r no campo r (aliases length ou k). Campos ausentes, não inteiros, decimais, n abaixo de um e qualquer r negativo são rejeitados com invalid_input e não são cobrados. Verificações de exemplo: n igual a dois e r igual a três produz count oito; n igual a cinco e r igual a dois produz count vinte e cinco; n igual a dez e r igual a zero produz count um; n igual a um e r igual a qualquer comprimento válido produz count um; n igual a zero produz invalid_input porque o tamanho do alphabet está abaixo de um; r igual a menos um produz invalid_input. O contrato é JSON estável, adequado a testes unitários, demos de sala de aula e pipelines em lote. O preço das chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde a contagem n elevado a r aparece no trabalho real
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Fixtures de competição e lição de casa
Gere contagens exatas ordenadas com repetição para problemas de olimpíada, exercícios de matemática discreta e gabaritos automatizados.