Conteggio composizioni intere
Il numero 5 si scrive come somma ordinata in 16 modi, perché le composizioni di n sono sempre 2^(n-1). Inserisca un n fino a 10000 e ottenga il conteggio esatto, anche con migliaia di cifre. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 5
- Quantità
- 16
Una composizione ordinata di un intero positivo n è una tupla di interi positivi che sommano a n, in cui l'ordine delle parti fa parte dell'identità: 1+3 e 3+1 sono due composizioni distinte di quattro. La combinatoria classica dimostra che il numero di tali somme ordinate è sempre due elevato a n meno uno. Questa capacità accetta un solo intero positivo n e restituisce quel conteggio esatto, insieme alla formula chiusa 2^(n-1), così Lei non deve enumerare ogni tupla, percorrere un albero binario di separatori né rischiare un errore di un'unità nel controllare compiti, casi di gara o identità di funzioni generatrici.
Perché il numero di composizioni ordinate è due alla n meno uno
Scriva n uni in fila. Tra quegli uni si trovano esattamente n meno uno interstizi. Per ciascun interstizio Lei può inserire una barra che spezza la sequenza in una nuova parte, oppure lasciare l'interstizio vuoto così che gli uni adiacenti restino uniti in una parte più grande.
Poiché ciascuno degli n meno uno interstizi ha due scelte indipendenti, il numero totale di schemi è due elevato alla potenza n meno uno. Quell'identità è l'intero algoritmo che questa capacità valuta: non percorre rami di prima parte, non alloca un array di tuple e non campiona. Un controllo di una riga per n uguale a quattro dà otto, in accordo con le otto composizioni (4), (1,3), (3,1), (2,2), (1,1,2), (1,2,1), (2,1,1) e (1,1,1,1).
La forma chiusa è esatta per ogni intero positivo, quindi un compito che afferma nove composizioni di quattro è semplicemente sbagliato, e un generatore che necessita della dimensione della famiglia delle composizioni può dimensionare i buffer da questo conteggio senza mai elencarle. L'ordine è essenziale: se identifica 1+3 con 3+1 ha lasciato le composizioni ed è entrato nel mondo delle partizioni, il cui conteggio p(n) non ha tale formula a potenza di due ed è un intento di ricerca diverso.
Che cosa si invia, che cosa si ottiene e quando la richiesta fallisce
La regola di prodotto è rigorosa: n inferiore a uno è invalido, compreso lo zero e ogni negativo, perché la definizione usuale di composizione richiede un intero positivo da comporre. In caso di successo la risposta ripete l'n normalizzato, restituisce count come stringa decimale del valore esatto 2^(n-1) e include formula come la stringa identità 2^(n-1) affinché i client mostrino il teorema senza codificarlo a mano.
Il conteggio è una stringa di proposito: due alla cinquantatré abbandona già l'intervallo degli interi sicuri di JavaScript, e questa pagina è utile proprio quando n è abbastanza grande da rendere disperato elencare ogni composizione. La convalida fallita non viene addebitata.
Dove ha senso un conteggio di composizioni e come viene tariffato
Usi questo conteggio quando la domanda è quante somme ordinate esistono, non quali siano le tuple. I programmatori di gare confrontano le soluzioni candidate di problemi di conteggio di composizioni con un oracolo deterministico invece di reimplementare una potenza BigInt in ogni harness di linguaggio. I docenti assegnano la dimostrazione degli interstizi e delle barre e hanno bisogno di un controllo automatico che 2^(n-1) sia davvero la dimensione della famiglia prima che gli studenti tentino di elencarla.
I sandbox per colloqui e le dimostrazioni di funzioni generatrici necessitano dello stesso numero ogni volta che chiedono. Il lavoro su dati e compilatori a volte dimensiona uno spazio di ricerca di suddivisioni per fasi ordinate di un budget n e deve conoscere la cardinalità prima di allocare.
Se Le servono davvero tutte le tuple, si fermi qui e usi uno strumento di elenco su un n piccolo; se Le servono composizioni in esattamente k parti, quello è il binomiale C(n-1, k-1) e un'altra pagina; se l'ordine non conta, Lei vuole la funzione di partizione p(n). Mantenga n entro i limiti documentati, tratti la stringa count come l'intero esatto e otterrà un conteggio di composizioni riproducibile senza installare un sistema di algebra computazionale.
Casi d'uso
Verifica scolastica dell'identità 2^(n-1)
Assegni agli studenti un n positivo e verifichi che le composizioni contate a mano coincidano con la forma chiusa prima di elencare ogni tupla.
Validatori per gare e colloqui
Confronti le soluzioni candidate di problemi di conteggio di composizioni con un conteggio BigInt esatto invece di reimplementare una potenza di due in ogni harness.
Dimensionare lo spazio delle suddivisioni ordinate
Scopra quante suddivisioni per fasi ordinate di un budget n esistono prima di allocare buffer o avviare un enumeratore.
Domande frequenti
Che cosa restituisce il conteggio delle composizioni intere?
Per un intero positivo n restituisce il numero esatto di composizioni ordinate di n come stringa decimale, più la formula 2^(n-1). Non elenca le tuple.
Perché la formula è due alla n meno uno e non 2^n?
Ci sono n uni in fila e solo n−1 interstizi tra di essi. Ogni interstizio è una scelta binaria (barra o nessuna barra), quindi il conteggio è 2^(n−1), non 2^n.
Questa pagina enumera ogni composizione?
No. Questa pagina risponde a quante composizioni esistono. Elencare ogni tupla ordinata è un altro compito ed è pratico solo per n piccolo.
Come viene tariffato il conteggio delle composizioni?
Lo strumento del browser è gratuito e gira in locale.
Quante composizioni ha il numero 5?
Ne ha 16. Tra cinque uni ci sono 4 spazi e in ognuno si può mettere un taglio oppure no: 2 scelte per spazio, quindi 2^4 = 16 somme ordinate.
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/numth/compositions-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/numth/compositions-count", {
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/numth/compositions-count",
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/numth/compositions-count", 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/numth/compositions-count", 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": "numth.compositions_count",
"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 |
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
La stessa funzione pura gira nello strumento gratuito del browser e sul percorso API. I valori di n inferiori a uno vengono rifiutati con invalid_input e non vengono mai fatturati.
Perché il numero di composizioni ordinate è due alla n meno uno
Ogni schema di barre e interstizi vuoti produce una composizione ordinata di n, e ogni composizione nasce da esattamente uno di tali schemi. Per n uguale a uno esiste un solo schema senza barre e il conteggio è uno, la composizione (1) stessa.
Che cosa si invia, che cosa si ottiene e quando la richiesta fallisce
Invii con POST un corpo JSON con l'intero positivo obbligatorio n, l'intero di cui vuole contare le composizioni ordinate. Gli alias integer, value e N sono accettati per lo stesso campo. n deve essere un numero intero da uno a diecimila; le stringhe numeriche di cifre sono accettate, mentre frazioni, booleani, stringhe vuote e campi assenti falliscono con invalid_input indicando n. Anche i valori oltre il massimo pubblicato falliscono, così una potenza di due di migliaia di cifre non può bloccare il Worker né il browser. Controlli tipici da fissare nei test: n uguale a uno produce count 1; n uguale a cinque produce count 16; n uguale a dieci produce count 512; n uguale a zero è invalid_input.
Dove ha senso un conteggio di composizioni e come viene tariffato
L'uso API preleva dal saldo prepagato KIT al prezzo base pubblicato $0.002 per elemento riuscito; invalid_input non consuma il saldo.
Domande tecniche
Quali valori di n sono accettati?
Interi da 1 a 10000. Zero, negativi, frazioni, n assente e valori oltre il massimo falliscono con invalid_input e non vengono addebitati.