Calcolatore di composizioni intere
Conti tutti i modi ordinati di dividere un intero in addendi positivi: 5 ha 16 composizioni e 4 ne ha 8, perché 1+3 e 3+1 contano separatamente. Indichi k parti per restringere il conteggio. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Intero positivo da comporre
- 5
- Quantità
- 16
Una composizione intera di n è un modo ordinato di scrivere n come somma di interi positivi. A differenza delle partizioni, l'ordine conta: 1+3 e 3+1 sono composizioni diverse di quattro. La combinatoria classica dimostra che esistono esattamente due elevato a n meno uno composizioni di ogni n positivo, ed esattamente C(n−1, k−1) composizioni con precisamente k parti. Questa capacità valuta quelle formule con aritmetica BigInt così che i conteggi grandi restino esatti come stringhe decimali, senza superare il floating-point né i limiti degli interi sicuri.
Cosa sono le composizioni e come funzionano le due formule
Disponga n uni in fila e decida, per ciascuno degli n−1 intervalli tra di essi, se inserire un separatore. Quando richiede esattamente k parti, deve scegliere esattamente k−1 di quegli n−1 intervalli per collocare i separatori, cioè il coefficiente binomiale C(n−1, k−1). Controllo piccolo: n uguale a quattro ha le composizioni (4), (1,3), (3,1), (2,2), (1,1,2), (1,2,1), (2,1,1) e (1,1,1,1)—otto valori, in accordo con due elevato a tre.
Esattamente tre parti di cinque: C(4,2) vale sei. Questo strumento moltiplica e divide con JavaScript BigInt affinché ogni intermedio resti esatto e il conteggio finale sia restituito come stringa decimale, mai arrotondato. Quel contratto coincide con i manuali di combinatoria e i giudici dei contest di programmazione, così può fidarsi del numero rispetto a elenchi manuali per n piccolo e a tabelle note per valori maggiori, senza deriva floating-point né wraparound silenzioso.
Casi d'uso
Validatori per contest di programmazione e colloqui
Verifichi soluzioni candidate a problemi di conteggio di composizioni senza reimplementare potenze BigInt o binomiali in ogni harness di linguaggio.
Insegnamento di stelle e barre e somme ordinate
Dimostri che le composizioni di n valgono 2^(n-1) e quelle a esattamente k parti valgono C(n-1,k-1) con conteggi esatti dal vivo introducendo funzioni generatrici o ricorsione.
Domande frequenti
Cos'è una composizione intera?
Una composizione di n è una tupla ordinata di interi positivi che sommano a n. L'ordine conta: (1,3) e (3,1) sono composizioni diverse di 4.
Quante composizioni ha un intero positivo n?
Esattamente 2^(n−1) composizioni in totale. Le composizioni in esattamente k parti sono C(n−1, k−1).
Perché il conteggio viene restituito come stringa?
Le grandi potenze di due e i binomiali superano gli interi sicuri di JavaScript. Una stringa decimale conserva il valore esatto per ogni n supportato senza perdita di precisione.
Il calcolatore di composizioni intere è gratuito?
Lo strumento del browser è gratuito e gira in locale.
Quante composizioni di 5 hanno esattamente 3 parti?
Sei. Inserisca 5 come numero e 3 come numero di parti: il conteggio è C(4,2), perché si scelgono 2 dei 4 spazi tra cinque uni in cui mettere i segni più.
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/compositions \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/combo/compositions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/compositions",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/compositions", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/compositions", 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
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.compositions",
"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 | 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
Studenti, docenti, programmatori di contest e ingegneri dei dati ottengono un risultato JSON deterministico—senza installare algebra computazionale, senza campionamento casuale, e con la stessa funzione pura nello strumento gratuito del browser e nel percorso API prepagato—così controlli di compiti, validazione di pipeline e sandbox per colloqui condividono una risposta riproducibile ogni volta che servono conteggi di composizioni anziché partizioni non ordinate o il solo binomiale n-scegli-r.
Cosa sono le composizioni e come funzionano le due formule
Ogni schema di separatori produce una somma ordinata unica di parti positive che totalizza n, e ogni composizione nasce così—quindi il numero totale di composizioni è due elevato a n meno uno. I casi limite sono intenzionali: n deve essere almeno uno (zero e i negativi sono invalid_input, non un'estensione gratuita), k quando presente deve soddisfare da uno a n, e omettere k restituisce il totale.
Come chiamare l'API e leggere la risposta
Quando k è omesso o vuoto, il servizio restituisce il conteggio totale di composizioni due alla potenza n meno uno. Quando k è impostato, restituisce C(n−1, k−1) e richiede uno minore o uguale a k minore o uguale a n. Una risposta di successo include n come numero, k come numero o null quando è stato usato il modo total, count come stringa decimale del valore esatto, e formula come la stringa 2^(n-1) o C(n-1,k-1) affinché i client possano mostrare o registrare l'identità senza codificarla a mano. La usi da correttori di compiti, validatori di contest, sandbox di preparazione ai colloqui, demo di funzioni generatrici o qualsiasi flusso che necessiti di un conteggio di composizioni riproducibile senza installare pacchetti multiprecisione su ogni macchina della pipeline. Invii un corpo JSON con l'intero positivo obbligatorio n—l'intero che desidera comporre—da uno a diecimila. Gli alias total, N e integer sono accettati con lo stesso significato. Il campo opzionale k è il numero esatto di parti; gli alias parts, num_parts e K mappano su k. Una validazione fallita—n mancante, n inferiore a uno, non intero, frazione, valore oltre il massimo pubblicato, o k maggiore di n—restituisce invalid_input e non viene mai addebitata. Il prezzo è un $0.002 fisso per richiesta riuscita con item unitario e prezzo unitario marginale zero.
Consigli pratici, limiti e intenzioni correlate
Nell'insegnamento, preferisca esempi accoppiati: n uguale a quattro produce otto composizioni totali; n uguale a cinque e k uguale a tre produce sei; n uguale a cinque e k uguale a uno produce uno (l'unica parte uguale a n); n uguale a cinque e k uguale a cinque produce uno (tutti uni); n uguale a zero dimostra il rifiuto netto per n inferiore a uno; e k maggiore di n dimostra il percorso k fuori intervallo. Landing sorelle possono mirare a combinazioni (n scegli r), multinomiali o partizioni non ordinate; questa pagina è specificamente per chi cerca un calcolatore di composizioni intere, partizioni ordinate in parti positive, o composizioni di n in k parti. Non confonda composizioni e partizioni: se l'ordine non conta, le serve la funzione di partizione p(n), che è un'intenzione e una landing diverse. Mantenga n al massimo diecimila così che potenze e binomiali del caso peggiore terminino in fretta sul Worker e nel browser, coprendo comunque dimensioni da contest e da didattica ben oltre l'intervallo sicuro di Number. Se le serve multiprecisione con n nelle centinaia di migliaia, usi uno stack dedicato di interi grandi offline—questa capacità leggera di parse è pensata per controlli interattivi, collante API e demo in aula. Poiché entrambe le formule sono deterministiche, gli studenti possono ricalcolare casi piccoli elencando o con un foglio di calcolo e allinearsi all'API riga per riga. I task falliti che restituiscono invalid_input non consumano saldo prepagato, il che tiene economici gli script esplorativi quando si digitano valori errati imparando il contratto. Preferisca conteggi esatti in stringa anziché forzare un JavaScript Number, così le grandi potenze di due non perdano mai le cifre di basso ordine nel trasporto JSON.
Casi di integrazione
Valutazione di compiti ed esami sulle composizioni
Assegni agli studenti n (e k opzionale) e confronti le composizioni contate a mano con un risultato deterministico dell'API o del browser gratuito, senza ambiguità floating-point.
Domande tecniche
Cosa succede se n è inferiore a 1 o k è maggiore di n?
La richiesta fallisce con invalid_input. Questo calcolatore richiede n ≥ 1 e, quando k è impostato, 1 ≤ k ≤ n.