ForHosting KIT · Matematica

Calcolatore del numero di Bell

B(5) vale 52: ci sono 52 modi di suddividere cinque elementi distinti in gruppi non vuoti quando l'ordine dei gruppi non conta. Inserisca un n da 0 a 20 e ottenga il numero di Bell esatto, per esercizi di combinatoria o partizioni di insiemi. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Indice n
0
Ottiene
Numero di Bell
1

gratis

Che cosa conta un numero di Bell

Un numero di Bell risponde a una semplice domanda di conteggio: in quanti modi si può suddividere un insieme di n elementi distinti in gruppi, senza gruppi vuoti e senza che contino l'ordine dei gruppi o l'ordine all'interno di ciascuno? Con tre elementi i modi sono 5: tutti insieme, ciascuno da solo oppure una delle tre coppie possibili con l'elemento rimasto a parte. La successione inizia con 1, 1, 2, 5, 15, 52, 203 e 877 per n da 0 a 7, e cresce in fretta. Poiché l'ordine dei gruppi non conta, B(n) è anche la somma dei numeri di Stirling di seconda specie su tutti i numeri possibili di gruppi.

Come si calcola e dove si usa

Ogni numero di Bell si costruisce a partire dai precedenti. Per ottenere il successivo, il calcolatore somma i numeri di Bell precedenti, ciascuno moltiplicato per un coefficiente binomiale, la stessa regola alla base del triangolo di Bell, così non forma mai un fattoriale enorme e ogni risultato resta un numero intero esatto. L'intervallo va da 0 a 20, quello usato nei corsi di combinatoria su partizioni di insiemi e numeri di Stirling, dove i casi piccoli si verificano a mano. Un errore frequente è contare gli ordini: suddividere nei gruppi A e B è la stessa partizione di B e A, e trattarle come diverse gonfia il risultato.

Cosa conta B(n)

B(0) e B(1) valgono entrambi 1, poi la successione cresce 2, 5, 15, 52, 203, 877 per n da 2 a 7. Poiché una partizione ignora l'ordine dei blocchi e l'ordine degli elementi all'interno di un blocco, B(n) è anche uguale alla somma dei numeri di Stirling del secondo tipo su tutti i possibili conteggi di blocchi. Il risultato è un intero esatto, mai un float né un'approssimazione, così il codice a valle può confrontarlo direttamente.

La ricorrenza utilizzata

Internamente il valore viene costruito con una ricorrenza dal basso verso l'alto anziché con una tabella di consultazione statica. Partendo da B(0)=1, ogni nuovo B(i+1) viene accumulato come la somma su k di C(i,k)·B(k), dove il coefficiente binomiale C(i,k) viene generato in modo incrementale con l'aggiornamento moltiplicativo c = c·(i−k+1)/k, che evita di formare un fattoriale che potrebbe traboccare. La somma corrente viene passata attraverso Math.round prima di essere memorizzata, riparando il minuscolo errore in virgola mobile che la divisione può introdurre, così ogni B(i) memorizzato resta un intero esatto.

È la stessa identità che sta alla base del triangolo di Bell, valutata in O(n²) addizioni.

Esercitazioni di combinatoria

Verifichi i conteggi di partizioni B(0)–B(20) mentre insegna le partizioni di insiemi e i numeri di Stirling, con interi esatti che gli studenti possono verificare a mano per n piccoli.

Cosa calcola?

Il numero di Bell B(n): il numero di modi per partizionare un insieme di n elementi in blocchi non vuoti e non ordinati. Riporta n e restituisce value.

Perché n è limitato a 20?

B(20) = 51.724.158.235.372 è il più grande numero di Bell che rientra esattamente in un double, quindi oltre 20 il risultato non potrebbe più essere esatto. n deve essere un intero 0–20.

La risposta è esatta?

Sì. Ogni termine viene riarrotondato a intero all'interno della ricorrenza, così value è un intero esatto, non un'approssimazione in virgola mobile.

In quanti modi si possono suddividere tre elementi in gruppi?

In cinque, cioè B(3). I tre possono stare insieme, ciascuno può restare da solo, oppure può formarsi una delle tre coppie possibili mentre l'elemento rimasto resta a parte.

Che rapporto c'è tra i numeri di Bell e quelli di Stirling?

Un numero di Bell è la somma dei numeri di Stirling di seconda specie con lo stesso n, presi per ogni numero possibile di gruppi. Ciascun numero di Stirling conta le suddivisioni in esattamente quel numero di gruppi.

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/math/bell-number

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/math/bell-number \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":5}'
{
  "n": 5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.bell_number",
  "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.

Inserisca un intero non negativo n (da 0 a 20) e ottenga B(n), il numero di modi per partizionare un insieme di n elementi in blocchi non vuoti e non ordinati, restituito come intero esatto in JSON. Gratis nel browser o tramite API da $0.002.

Cosa conta B(n)

Dato un intero non negativo n, questo endpoint restituisce B(n), il numero di Bell, che conta i modi in cui un insieme di n elementi distinti può essere partizionato in blocchi non vuoti e non ordinati. Il corpo della richiesta contiene un unico campo obbligatorio, n, e la risposta lo riporta insieme a value, il numero di Bell calcolato, come semplice JSON del tipo {"n":5,"value":52}.

La ricorrenza utilizzata

Ogni B(k) intermedio fino a n viene calcolato una volta e riutilizzato, così una chiamata per n=20 esegue solo poche centinaia di operazioni e restituisce immediatamente, senza profondità di ricorsione da esaurire e senza cache di memoizzazione da preriscaldare tra le richieste.

Intervallo, convalida e accesso

La convalida è rigorosa e avviene prima di qualsiasi calcolo. L'input deve essere un oggetto JSON, n deve essere un intero e deve rientrare nell'intervallo chiuso da 0 a 20; qualsiasi altra cosa genera un errore tipizzato invalid_input il cui messaggio nomina il campo incriminato invece di una nuda eccezione. Il limite superiore di 20 è deliberato: B(20) è pari a 51.724.158.235.372, il più grande numero di Bell che rientra ancora esattamente in un numero JavaScript a doppia precisione, così l'endpoint non restituisce mai in silenzio un grande intero arrotondato. n negativo, n frazionario, stringhe, array e un n mancante vengono tutti rifiutati allo stesso modo.

Fixture di test

Generi numeri di Bell noti come golden per i test unitari del suo codice di partizionamento, clustering o enumerazione.

Strumenti per successioni

Popoli in blocco le consultazioni di OEIS A000110 o i fogli di calcolo tramite l'API senza spedire una libreria di grandi interi al client.

Cosa restituisce un input errato?

Un errore tipizzato invalid_input che nomina il campo — per esempio un n non intero, negativo o fuori intervallo, oppure un n mancante.

È gratuito?

Sì nel browser come widget tier A. L'API costa $0.002 per chiamata riuscita; le attività fallite non vengono addebitate.

Leggi la documentazione completa del KIT →