Calcolatore permutazioni e combinazioni
Scopra in quanti modi si possono scegliere r elementi su un totale di n: prenderne 2 su 5 dà 10 combinazioni se l'ordine non conta, mentre le permutazioni contano ogni ordine a parte. Risultati interi esatti per n fino a 1000. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Elementi totali (n)
- 5
- Elementi selezionati (r)
- 2
- Modalità di calcolo
- C
- Risultato
- 10
Inserisci n, r e la modalità (permutazione o combinazione) per ottenere un intero esatto come stringa.
Cosa significano P e C
P(n,r) conta le selezioni ordinate di r elementi da n senza reinserimento, mentre C(n,r) conta le selezioni non ordinate. Entrambi richiedono interi n e r tra zero e mille con r minore o uguale a n. La modalità accetta P, p, permutation, perm per i conteggi ordinati e C, c, combination, comb per quelli non ordinati, poi normalizza l'eco a una sola lettera maiuscola.
I risultati non chiamano la rete e non dipendono dal locale.
Prodotti BigInt esatti senza fattoriali in virgola mobile
Le permutazioni moltiplicano il prodotto discendente da n per r fattori. Le combinazioni usano lo stesso percorso con divisione intera esatta per ogni indice successivo, dopo aver eventualmente sostituito r con min(r, n-r) per ridurre le iterazioni. Float, booleani e zeri iniziali come 01 vengono rifiutati sul campo colpevole.
I risultati non chiamano la rete e non dipendono dal locale.
Che cosa accetta e che cosa rifiuta
Un meno iniziale viene segnalato come negativo prima del nome del campo. I valori sopra mille falliscono su n o r. Quando r è maggiore di n il match è range.
Stringhe vuote, segni più e punti decimali sono errori di formato. Queste regole tengono il contratto abbastanza corto da far coincidere oracoli indipendenti su ogni vettore firmato senza leggere il codice. I risultati non chiamano la rete e non dipendono dal locale.
Uscita adatta alle pipeline
Le risposte di successo includono sempre gli interi normalizzati n e r, mode come P o C, result come stringa decimale minima e formula come C(5,2) per la visualizzazione. La versione uno omette ripetizioni, multinomiali e input non interi così la superficie firmata resta verificabile. I risultati non chiamano la rete e non dipendono dal locale.
Casi d'uso
Compiti
Verificare subito nPr e nCr del libro.
Estrazioni
Contare le combinazioni con C(n,r).
Posti a sedere
Contare le assegnazioni ordinate con P(n,r).
Test CI
Fissare stringhe esatte in integrazione continua.
Domande frequenti
Si accettano decimali?
Non in v1. Solo interi da 0 a 1000.
Che differenza c'è tra permutazione e combinazione?
La permutazione conta le scelte ordinate, quindi prendere A e poi B è diverso da B e poi A. La combinazione ignora l'ordine. Prenderne 2 su 5 dà 10 combinazioni e il doppio di permutazioni, perché ogni coppia si può ordinare in due modi.
Quale uso per le estrazioni del lotto?
Usi la combinazione, perché l'ordine in cui escono i numeri non cambia la giocata. Per disporre i posti a tavola o le posizioni di un podio, dove l'ordine conta, usi invece la permutazione.
Il valore r può superare n?
No. Non si possono scegliere più elementi di quanti ce ne siano, quindi r deve essere uguale o minore di n. Entrambi devono essere interi da 0 a 1000, e ogni valore fuori da questo intervallo viene rifiutato.
Conta anche le scelte con ripetizione?
No. Ogni conteggio presuppone che un elemento già scelto non possa essere scelto di nuovo. Le scelte con ripetizione e i conteggi multinomiali non sono inclusi, quindi verifichi che il suo problema sia senza reinserimento.
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/dev/permutation-combination \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"r":2,"mode":"C"}'const res = await fetch("https://api.kit.forhosting.com/dev/permutation-combination", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"r": 2,
"mode": "C"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/permutation-combination",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"r": 2,
"mode": "C"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/permutation-combination", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"r":2,"mode":"C"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"r":2,"mode":"C"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/permutation-combination", 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": 2,
"mode": "C"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.permutation_combination",
"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
max_n | 1000 |
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
Cosa significano P e C
Le modalità sconosciute dopo il trim restituiscono invalid_input tipizzato su mode.
Prodotti BigInt esatti senza fattoriali in virgola mobile
Poiché ogni passo resta su BigInt, valori come P(1000,3) e C(30,5) sono stringhe decimali esatte senza notazione scientifica e senza sorprese IEEE.
Errori tipizzati e limiti affidabili
La mancanza di n, r o mode produce invalid_input con un match chiaro.
Domande tecniche
r può superare n?
No. Viene restituito range.
Quanto può essere grande n?
Fino a 1000 incluso.
result è un number?
È una stringa decimale dell'intero esatto.
Gratis nel browser?
Sì. Il widget è locale; l'API usa $0.002.
Usa Math.pow?
No. Solo prodotti BigInt e divisioni esatte.