Elenca tutte le composizioni ordinate di un intero
Il numero 4 ha 8 composizioni, da 1+1+1+1 fino al 4 stesso, e questo strumento le elenca tutte in un ordine fisso con il totale accanto. Accetta qualsiasi n da 1 a 16. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 4
- Quantità
- 8
Una composizione ordinata di un intero positivo n è un modo di scrivere n come somma di interi positivi in cui l'ordine degli addendi conta: 1+2 e 2+1 sono composizioni diverse di 3, e ce ne sono sempre esattamente 2 elevato alla potenza n meno uno in totale.
Cosa sono le composizioni ordinate e in cosa differiscono dalle partizioni
Nella teoria dei numeri e nella combinatoria, una composizione di n è una sequenza ordinata di interi positivi la cui somma è n. A differenza delle partizioni di interi, dove conta solo il multinsieme delle parti e 1+2 viene identificato con 2+1, le composizioni trattano ogni ordinamento come un oggetto distinto. Per ogni n almeno uno esistono esattamente due elevato alla potenza n meno uno composizioni: ciascuna composizione corrisponde all'inserimento o all'omissione di un separatore tra unità consecutive in una fila di n uni.
I libri di testo usano le composizioni quando l'ordine codifica sequenza, classifica o allocazione a tappe: per esempio le dimensioni successive dei blocchi in una pianificazione, le lunghezze delle sequenze in una stringa binaria, o le ampiezze dei passi lungo un percorso che deve coprire esattamente n unità. Gli studenti confondono spesso le due famiglie perché entrambe rispondono alla domanda «come si può scrivere n come somma», eppure solo le composizioni si curano dell'ordine da sinistra a destra.
Restituire l'elenco ordinato completo rende concreta quella distinzione: vede ogni riordino, non un rappresentante canonico ordinato, e il campo del conteggio deve coincidere con la formula chiusa, così può individuare subito un'enumerazione manuale incompleta.
Come la capacità enumera le composizioni e quando rifiuta
Il motore costruisce ogni composizione tramite espansione ricorsiva della prima parte: per la somma rimanente r prova ogni dimensione di parte k da uno fino a r, antepone o accoda k al prefisso in crescita e prosegue finché il resto è zero, momento in cui la sequenza completata viene registrata. Quel percorso produce un ordine stabile e deterministico — richieste identiche generano sempre lo stesso array di array — senza dipendere da orologi, casualità o stato di rete.
La risposta riporta n stesso, l'array delle composizioni e count pari alla lunghezza di quell'array (che è sempre due elevato alla potenza n meno uno per un n valido). I campi n mancanti, non interi o malformati vengono rifiutati allo stesso modo e non vengono mai addebitati.
Dove usare l'elenco e quanto costa
Le collocazioni tipiche comprendono la verifica delle risposte degli studenti che elencano le composizioni di un dato n, la generazione di casi di test esaustivi per funzioni che accettano sequenze ordinate di parti, l'esplorazione di identità combinatorie che contano le composizioni con dimensioni di parte ristrette filtrando a posteriori l'elenco completo, e la documentazione delle opzioni di suddivisione a tappe quando un budget di n unità può essere ripartito in fasi ordinate.
Mantenga n entro i limiti documentati affinché la risposta resti gestibile; se le serve solo il conteggio, può comunque usare questo strumento per un n piccolo oppure applicare la formula chiusa due elevato alla potenza n meno uno fuori dallo strumento per lavori teorici più grandi. Il percorso nel browser gira in locale e non richiede alcun account. Consideri il count restituito come autorevole per gli array elencati anziché ricalcolare la lunghezza in un codice client che potrebbe divergere da questo contratto.
Casi d'uso
Verifica di compiti e gare
Confronti l'elenco ordinato delle composizioni di uno studente per un dato n con l'enumerazione e il conteggio canonici completi, invece di valutare alberi tracciati a mano parziali.
Esplorazione combinatoria e demo didattiche
Mostri dal vivo come l'ordine distingue le composizioni dalle partizioni, e confermi che il count restituito è sempre pari a due elevato alla potenza n meno uno.
Domande frequenti
Come elenco tutte le composizioni ordinate di un intero?
La risposta include le composizioni come array di parti, più count.
Qual è la differenza tra una composizione e una partizione?
Le composizioni trattano l'ordine come significativo (1+2 differisce da 2+1). Le partizioni ignorano l'ordine e conservano solo il multinsieme delle parti.
Quante composizioni ha il 4?
Ne ha 8: 1+1+1+1, 1+1+2, 1+2+1, 1+3, 2+1+1, 2+2, 3+1 e 4. Il numero coincide con 2^(n-1), quindi se il suo elenco fatto a mano ne ha meno, ne manca qualcuna.
Perché n arriva solo fino a 16?
L'elenco raddoppia ogni volta che n cresce di uno, quindi valori grandi darebbero una risposta enorme. Fino a 16 l'elenco completo resta leggibile; se le serve solo quante sono, basta la formula 2^(n-1).
L'elenco esce sempre nello stesso ordine?
Sì. Lo stesso n restituisce sempre lo stesso elenco nello stesso ordine, costruito provando ogni prima parte dalla più piccola alla più grande, così può confrontare le risposte riga per riga.
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-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":4}'const res = await fetch("https://api.kit.forhosting.com/numth/compositions-list", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/compositions-list",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/compositions-list", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/compositions-list", 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": 4
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.compositions_list",
"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.
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
Come la capacità enumera le composizioni e quando rifiuta
Invia un corpo JSON con un singolo campo obbligatorio n, un intero positivo almeno uno e al massimo sedici. I valori inferiori a uno falliscono con invalid_input perché zero e i negativi non sono interi positivi secondo la definizione usuale di composizione. Anche i valori superiori al tetto pubblicato falliscono con invalid_input: la dimensione dell'elenco raddoppia a ogni incremento di n, quindi un'enumerazione illimitata farebbe esplodere la dimensione della risposta e la CPU del Worker; il massimo documentato mantiene pratico l'elenco completo sia per il browser sia per l'API.
Dove usare l'elenco e quanto costa
Usi lo strumento gratuito nel browser quando vuole una verifica visiva rapida per un n piccolo, oppure chiami l'API quando uno script, un registro dei voti, un generatore o un notebook di ricerca devono risolvere molti valori sempre allo stesso modo. L'uso dell'API attinge al saldo KIT prepagato al prezzo base pubblicato di $0.002 per richiesta andata a buon fine; una validazione fallita non consuma saldo.
Casi di integrazione
Generazione esaustiva di fixture di test
Immetta piccoli valori di n nell'API e usi ogni composizione come caso di input per funzioni che elaborano sequenze ordinate di interi positivi che sommano a un budget.
Domande tecniche
Perché lo strumento rifiuta un n grande?
Il numero di composizioni è 2^(n-1). Oltre il massimo pubblicato l'elenco completo è troppo grande da enumerare in sicurezza in una singola richiesta, quindi la chiamata fallisce con invalid_input.
L'elenco delle composizioni di un intero è gratuito?
Il widget del browser è gratuito e gira in locale. Le chiamate API usano il saldo KIT prepagato al prezzo base pubblicato di $0.002; un input non valido non viene addebitato.
Il risultato è sempre lo stesso per lo stesso n?
Sì. L'algoritmo è pura enumerazione ricorsiva senza casualità né timestamp, quindi input identici producono JSON identico.