ForHosting KIT · Matematica

Partizioni in parti distinte

Il numero 5 si divide in parti distinte in 3 modi: 5, 4+1 e 3+2. Inserisca qualsiasi intero da 0 a 5000 e ottenga il numero esatto delle sue partizioni in parti distinte, per quante cifre abbia. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
N
10
Ottiene
Valore
10
Quantità
10
Q
10

La funzione di partizione in parti distinte q(n) risponde a una domanda classica di teoria dei numeri: in quanti modi può Lei scrivere un intero non negativo n come somma di interi positivi quando ogni addendo compare al più una volta e l'ordine non conta? Ad esempio, 5 è uguale a 5, 4+1 e 3+2, quindi q(5) vale tre; 6 ha quattro partizioni in parti distinte e 10 ne ha dieci. Questo conteggio differisce dalla funzione di partizione non ristretta p(n), che ammette parti ripetute come 2+2 o 1+1+1. Le partizioni in parti distinte compaiono nelle identità delle funzioni generatrici, nel teorema di Eulero che le equipara a quelle in parti dispari, nelle olimpiadi e negli esercizi di programmazione dinamica. Questa capacità accetta un intero non negativo n e restituisce il q(n) esatto come stringa decimale calcolata con programmazione dinamica 0-1 in BigInt, così i valori oltre gli interi sicuri restano corretti cifra per cifra. Un n negativo viene rifiutato con un chiaro errore di validazione invece di uno zero silenzioso o di una risposta sbagliata.

Come si definiscono e si contano le partizioni in parti distinte

Una partizione di un intero non negativo n in parti distinte è un modo di scrivere n come somma di interi positivi in cui nessuna parte si ripete e l'ordine degli addendi è irrilevante. Per convenzione q(0) vale uno, contando la partizione vuota dello zero. I valori classici da manuale sono q(1)=1 (ossia 1), q(2)=1 (ossia 2), q(3)=2 (3 e 2+1), q(4)=2 (4 e 3+1), q(5)=3 (5, 4+1, 3+2), q(6)=4 e q(10)=10.

La funzione generatrice ordinaria della successione è il prodotto infinito su k maggiore o uguale a uno di uno più x elevato a k, che codifica che ogni intero positivo può comparire zero volte o esattamente una volta come parte.

Un algoritmo pratico nel software è il programma dinamico classico in stile zaino 0-1: inizializzi un array con un modo per formare la somma zero e, per ogni dimensione di parte da uno a n, scorra l'array delle somme residue da n verso il basso fino a quella dimensione e sommi i modi che escludono la parte a quelli che la includono. L'ordine decrescente garantisce che ogni parte sia usata al più una volta, così l'uso multiplo non ristretto non si verifica mai.

Oggetti correlati ma diversi includono le partizioni non ristrette p(n), dove le parti possono ripetersi; le composizioni, dove l'ordine conta; le partizioni di insiemi contate dai numeri di Stirling di seconda specie; e le partizioni solo in parti dispari, che Eulero ha dimostrato equinumerose a quelle in parti distinte per ogni n. Questa implementazione non usa approssimazione in virgola mobile, campionamento Monte Carlo né tabelle esterne: riempie un array unidimensionale BigInt affinché ogni cifra sia corretta.

Il percorso è pienamente deterministico — senza semi casuali, orologi, rete né deriva di modello —, così lo stesso n produce sempre la stessa stringa.

Dove le partizioni in parti distinte compaiono nel lavoro reale

I corsi di teoria dei numeri e i concorsi di programmazione chiedono di continuo quante partizioni di n usano addendi a due a due distinti, come quel conteggio si confronti con p(n) non ristretta, o se una tabella di piccoli valori coincida con l'identità di Eulero sulle partizioni in parti dispari.

I progettisti di algoritmi usano i conteggi in parti distinte per analizzare spazi di stato stile subset-sum 0-1, contare combinazioni di dimensioni di risorsa uniche che totalizzano un budget, o dimensionare tabelle di DP le cui dimensioni seguono dimensioni di parte usate al più una volta. Le lezioni di combinatoria e funzioni generatrici collegano q(n) al prodotto di uno più x elevato a k e a identità ristrette di tipo Rogers–Ramanujan; gli educatori spesso elencano le partizioni distinte di un piccolo n e poi chiedono solo il conteggio.

La preparazione a colloqui e olimpiadi ha spesso bisogno di un q(n) affidabile senza tabelle tenute a mano né confusione con composizioni o partizioni non ristrette. Se più avanti le serve p(n) non ristretta, composizioni in cui l'ordine conta, partizioni di insiemi via Stirling di seconda specie, o un elenco esplicito di ogni partizione in parti distinte invece del conteggio, le tratti come intenzioni di ricerca separate anziché sovraccaricare questa pagina.

Tenga n entro il limite documentato così che la latenza del livello gratuito resti prevedibile, e preferisca consumatori di stringa per il valore restituito perché q(n) finisce per uscire dall'intervallo degli interi sicuri per argomenti grandi.

Compiti e concorsi di teoria dei numeri

Calcoli q(n) esatto per problemi da olimpiade, esercizi di matematica discreta e chiavi di risposta automatiche che chiedono partizioni in parti distinte.

Controlli in aula dell'identità di Eulero

Verifichi valori classici come q(5)=3 e q(10)=10 insegnando le funzioni generatrici o confrontando conteggi in parti distinte e in parti dispari.

Che cos'è la funzione di partizione in parti distinte q(n)?

q(n) conta i modi di scrivere n come somma di interi positivi quando nessuna parte si ripete e l'ordine non conta. Ad esempio q(5)=3 e q(10)=10.

In che cosa differisce dalle partizioni non ristrette p(n)?

La p(n) non ristretta ammette parti ripetute (così 2+2 conta per 4). Le partizioni in parti distinte vietano le ripetizioni, quindi 4 ne ha solo due: 4 e 3+1.

Cosa succede se n è negativo?

Questa calcolatrice richiede n ≥ 0; un n negativo viene rifiutato e non addebitato.

Perché il valore è una stringa invece di un numero?

I numeri di partizione in parti distinte superano gli interi sicuri di JavaScript per n grandi. Le stringhe decimali mantengono ogni cifra esatta.

Quanto costa?

Lo strumento del browser è gratuito e gira in locale.

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.

POSThttps://api.kit.forhosting.com/numth/distinct-partitions

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/numth/distinct-partitions \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":10}'
{
  "n": 10
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.distinct_partitions",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Lo strumento gratuito del browser e l'API a pagamento condividono un'unica funzione pura, così le demo in aula e le pipeline automatiche non divergono mai per lo stesso n.

Come si definiscono e si contano le partizioni in parti distinte

I limiti dichiarati mantengono n tra zero e cinquemila inclusi, il che mantiene la latenza del caso peggiore adatta a uno strumento gratuito nel browser e a un Worker leggero, coprendo al contempo le esigenze di concorsi, aule e pipeline per conteggi esatti in parti distinte.

Cosa invia Lei e cosa riceve indietro

L'intero n deve stare tra zero e cinquemila inclusi. I messaggi di errore nominano il campo colpevole e la regola fallita così che client di form e script possano correggere l'input senza indovinare. In caso di successo la risposta include sempre l'n normalizzato, value e count e q come la stessa stringa decimale esatta di q(n), e una formula breve come q(5) per la visualizzazione. Fornisca un intero n obbligatorio nel campo n (alias number, value o N). Campi assenti, non interi, decimali e qualsiasi n negativo vengono rifiutati con invalid_input e non vengono addebitati. Controlli di esempio: n uguale a cinque dà conteggio tre; n uguale a dieci dà conteggio dieci; n uguale a zero dà conteggio uno; n uguale a sei dà conteggio quattro; n uguale a tre dà conteggio due; n uguale a meno tre dà invalid_input perché la funzione in parti distinte non è definita per argomenti negativi in questa regola di prodotto; n uguale a un decimale o a una stringa non numerica dà pure invalid_input. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per voce; i fallimenti di validazione non consumano il saldo prepagato.

Dove le partizioni in parti distinte compaiono nel lavoro reale

Poiché questa capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per voce riuscita e la validazione fallita non consuma il saldo.

Analisi zaino 0-1 e subset-sum

Convalidi fixture di conteggio in parti distinte in pipeline di DP intera che usano ogni dimensione di parte al più una volta, senza tabelle in virgola mobile.

Leggi la documentazione completa del KIT →