Permutazioni con ripetizione
Conti le sequenze ordinate in cui i simboli possono ripetersi: 5 simboli su 3 posizioni danno 125 possibilità, 5^3, la stessa regola del prodotto alla base di codici e password. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Numero di simboli distinti
- 5
- Resistenza (Ω)
- 3
- Valore
- 125
- Quantità
- 125
Le permutazioni con ripetizione rispondono a una semplice domanda di conteggio: se Lei dispone di n simboli distinti e forma sequenze ordinate di lunghezza r in cui lo stesso simbolo può comparire più di una volta, quante sequenze esistono? La regola del prodotto moltiplica n scelte in ciascuna delle r posizioni, così il totale è esattamente n elevato alla potenza r. Quella formula compare negli spazi delle password, nei codici PIN, nelle colorazioni di stringhe a lunghezza fissa, nel campionamento con reinserimento e in innumerevoli problemi di matematica discreta in cui la risposta deve essere un intero esatto e non un'approssimazione in virgola mobile. Questa capacità accetta un intero positivo n (la dimensione dell'alphabet) e un intero non negativo r (la lunghezza della sequenza) e restituisce il conteggio esatto come stringa decimale calcolata con aritmetica BigInt, così valori ben oltre i limiti abituali degli interi sicuri restano corretti cifra per cifra. Gli input con n inferiore a uno o con r negativo vengono rifiutati con un chiaro errore di validazione invece di una risposta sbagliata silenziosa.
Come si definiscono le permutazioni con ripetizione
Una selezione ordinata di r posizioni da n simboli con ripetizione consentita è qualsiasi sequenza s1, s2, …, sr in cui ogni si appartiene a un insieme fisso di dimensione n. Poiché l'ordine conta e i simboli possono ripetersi, la prima posizione ha n opzioni, la seconda di nuovo n opzioni, e così per ogni posizione fino a r. Il principio fondamentale del conteggio moltiplica quelle scelte indipendenti in n × n × … × n, cioè n alla potenza r.
Quando r vale zero esiste esattamente una sequenza vuota, in accordo con la convenzione algebrica per cui ogni n positivo elevato alla potenza zero è uguale a uno. Ciò differisce dalle permutazioni senza ripetizione, che vietano il riuso e producono il fattoriale decrescente n × (n − 1) × … × (n − r + 1), e dalle combinazioni, che ignorano l'ordine.
Controlli classici da manuale includono due simboli di lunghezza tre che danno otto sequenze, cinque simboli di lunghezza due che danno venticinque, e dieci simboli di lunghezza zero che danno uno. Questa implementazione non usa mai potenze in virgola mobile, logaritmi approssimati o campionamento: calcola la potenza intera esatta con esponenziazione binaria BigInt affinché ogni cifra sia corretta. Il percorso è pienamente deterministico — senza semi casuali, senza orologi, senza rete e senza deriva di modello —, così lo stesso n e r producono sempre la stessa stringa.
Dove il conteggio n alla r compare nel lavoro reale
I team di sicurezza e di prodotto stimano gli spazi di password o PIN trattando ogni posizione di carattere come una scelta da un alphabet di dimensione n per lunghezza r, che è esattamente il conteggio delle permutazioni con ripetizione n alla r; gli interi esatti aiutano a confrontare la forza degli schemi senza approssimazioni logaritmiche.
Le gare di programmazione e i corsi di matematica discreta chiedono di continuo il numero di parole di lunghezza r su un alphabet di n lettere, le colorazioni di r perline con n colori quando l'ordine conta e i colori possono ripetersi, o le funzioni da un insieme di dimensione r in un insieme di dimensione n — tutte uguali a n elevato a r.
Le pipeline di dati e campionamento che modellano estrazioni ordinate con reinserimento necessitano dello stesso prodotto nel dimensionare spazi campionari o validare assetti Monte Carlo contro un totale analitico. Docenti e preparazione ai colloqui mostrano spesso una breve tabella di piccoli valori di n e r; calcolare il conteggio in una sola chiamata mantiene le demo interattive allineate a manuali e chiavi di risposta.
Se in seguito le servono permutazioni senza ripetizione, combinazioni con o senza ripetizione, o l'elenco delle tuple reali anziché il conteggio, le tratti come intenti di ricerca separati invece di sovraccaricare questa pagina.
Casi d'uso
Dimensione dello spazio di password e PIN
Calcoli spazi alphabet esatti n^r per codici a lunghezza fissa e confronti le dimensioni degli schemi senza approssimazioni logaritmiche in virgola mobile.
Campionamento e conteggio di funzioni
Dimensioni spazi campionari ordinati con reinserimento e conti le funzioni da r posizioni in n simboli per revisioni di progetto.
Domande frequenti
Cosa sono le permutazioni con ripetizione?
Sono sequenze ordinate di lunghezza r estratte da n simboli in cui lo stesso simbolo può comparire più di una volta. Il conteggio totale è esattamente n elevato alla potenza r.
In che modo differiscono dalle permutazioni senza ripetizione?
Senza ripetizione ogni simbolo può essere usato al massimo una volta, ottenendo il fattoriale decrescente n×(n−1)×…×(n−r+1). Con ripetizione il riuso è consentito, quindi il conteggio è n^r.
Cosa succede se n è inferiore a 1 o r è negativo?
Questa calcolatrice richiede n ≥ 1 e r ≥ 0; i limiti non validi vengono rifiutati e non addebitati.
Perché il conteggio è una stringa invece di un numero?
Le potenze superano rapidamente gli interi sicuri di JavaScript. Le stringhe decimali conservano ogni cifra esatta per grandi valori di n^r.
Quanto costa?
Lo strumento del browser è gratuito e gira in locale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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)Esempio di richiesta
{
"n": 5,
"r": 3
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.permutations_with_repetition",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
min_n | 1 |
max_n | 10000 |
min_r | 0 |
max_r | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Lo strumento gratuito del browser e l'API a pagamento condividono un'unica funzione pura, così le dimostrazioni in aula e le pipeline automatizzate non divergono mai sulla stessa coppia.
Come si definiscono le permutazioni con ripetizione
I limiti dichiarati mantengono n tra uno e diecimila e r tra zero e diecimila così la latenza nel caso peggiore resta adatta a uno strumento gratuito nel browser e a un percorso Worker leggero, coprendo ancora le esigenze di gare, aula e pipeline per grandi conteggi esatti.
Cosa invia e cosa riceve in risposta
Il conteggio dei simboli n deve essere un intero da uno a diecimila incluso; la lunghezza r deve essere un intero da zero a diecimila incluso. I messaggi di errore nominano il campo incriminato e la regola fallita così client di form e script possono correggere l'input senza indovinare. In caso di successo la risposta include sempre n e r normalizzati, count e value come la stessa stringa decimale esatta di n alla potenza r, e una breve stringa formula come cinque caret tre per la visualizzazione. Fornisca un intero obbligatorio n nel campo n (aliases symbols o alphabet) e un intero obbligatorio r nel campo r (aliases length o k). Campi mancanti, non interi, decimali, n inferiore a uno e qualsiasi r negativo vengono rifiutati con invalid_input e non sono addebitati. Controlli di esempio: n uguale a due e r uguale a tre produce count otto; n uguale a cinque e r uguale a due produce count venticinque; n uguale a dieci e r uguale a zero produce count uno; n uguale a uno e r uguale a qualsiasi lunghezza valida produce count uno; n uguale a zero produce invalid_input perché la dimensione dell'alphabet è inferiore a uno; r uguale a meno uno produce invalid_input. Il contratto è JSON stabile, adatto a test unitari, demo in aula e pipeline a lotti. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano il saldo prepagato.
Dove il conteggio n alla r compare nel lavoro reale
Poiché questa capacità è un motore di parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma il saldo.
Casi di integrazione
Fixture per gare e compiti
Generi conteggi esatti ordinati con ripetizione per problemi da olimpiade, esercizi di matematica discreta e chiavi di risposta automatizzate.