Calculateur du nombre de Bell
B(5) vaut 52 : il existe 52 façons de répartir cinq éléments distincts en groupes non vides quand l'ordre des groupes ne compte pas. Saisissez un n de 0 à 20 et obtenez le nombre de Bell exact, pour la combinatoire ou les partitions d'ensembles. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Indice n
- 0
- Nombre de Bell
- 1
gratuit
Ce que B(n) dénombre
Pour un entier naturel n donné, ce point d'accès renvoie B(n), le nombre de Bell, qui compte les façons de partitionner un ensemble de n éléments distincts en blocs non vides et non ordonnés. B(0) et B(1) valent tous deux 1, puis la suite progresse en 2, 5, 15, 52, 203, 877 pour n allant de 2 à 7.
Comme une partition ignore l'ordre des blocs et l'ordre des éléments au sein d'un bloc, B(n) est aussi égal à la somme des nombres de Stirling de deuxième espèce sur tous les nombres de blocs possibles. Le résultat est un entier exact, jamais un flottant ni une approximation, de sorte que votre code en aval peut le comparer directement.
La récurrence employée
En interne, la valeur est construite par une récurrence ascendante plutôt que par une table de correspondance figée. À partir de B(0)=1, chaque nouveau B(i+1) est accumulé comme la somme sur k de C(i,k)·B(k), où le coefficient binomial C(i,k) est engendré de façon incrémentale par la mise à jour multiplicative c = c·(i−k+1)/k, ce qui évite de former une factorielle susceptible de déborder.
La somme courante passe par Math.round avant d'être stockée, corrigeant la minuscule erreur de virgule flottante que la division peut introduire, si bien que chaque B(i) stocké reste un entier exact. C'est l'identité même qui sous-tend le triangle de Bell, évaluée en O(n²) additions.
Domaine, validation et accès
La validation est stricte et intervient avant tout calcul. La borne supérieure de 20 est délibérée : B(20) vaut 51 724 158 235 372, le plus grand nombre de Bell qui tienne encore exactement dans un nombre à double précision de JavaScript, de sorte que le point d'accès ne renvoie jamais en silence un grand entier arrondi. Un n négatif, fractionnaire, une chaîne, un tableau ou un n absent sont tous rejetés de la même manière.
Cas d’usage
Travaux dirigés de combinatoire
Vérifiez les décomptes de partitions B(0)–B(20) en enseignant les partitions d'un ensemble et les nombres de Stirling, avec des entiers exacts que les étudiants peuvent recalculer à la main pour de petits n.
Questions fréquentes
Que calcule cet outil ?
Le nombre de Bell B(n) : le nombre de façons de partitionner un ensemble de n éléments en blocs non vides et non ordonnés. Il renvoie n en écho et fournit value.
Pourquoi n est-il plafonné à 20 ?
B(20) = 51 724 158 235 372 est le plus grand nombre de Bell qui tienne exactement dans un double ; au-delà de 20, le résultat ne pourrait plus être exact. n doit être un entier de 0 à 20.
La réponse est-elle exacte ?
Oui. Chaque terme est ramené à un entier au sein de la récurrence, de sorte que value est un entier exact et non une approximation en virgule flottante.
De combien de façons peut-on répartir trois éléments en groupes ?
De cinq, soit B(3). Les trois peuvent rester ensemble, chacun peut être seul, ou l'une des trois paires possibles peut se former pendant que l'élément restant reste à part.
Quel lien entre les nombres de Bell et ceux de Stirling ?
Un nombre de Bell est la somme des nombres de Stirling de seconde espèce pour le même n, pris pour chaque nombre de groupes possible. Chaque nombre de Stirling compte les répartitions en exactement ce nombre de groupes.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/math/bell-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/math/bell-number", {
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/math/bell-number",
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/math/bell-number", 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/math/bell-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"n": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.bell_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Saisissez un entier naturel n (de 0 à 20) et obtenez B(n), le nombre de façons de partitionner un ensemble de n éléments en blocs non vides et non ordonnés, renvoyé comme entier exact au format JSON. Gratuit dans le navigateur ou via API dès $0.002.
Ce que B(n) dénombre
Le corps de la requête ne porte qu'un seul champ requis, n, et la réponse le renvoie en écho aux côtés de value, le nombre de Bell calculé, sous forme de JSON simple tel que {"n":5,"value":52}.
La récurrence employée
Chaque B(k) intermédiaire jusqu'à n est calculé une seule fois puis réutilisé, de sorte qu'un appel pour n=20 n'effectue que quelques centaines d'opérations et répond aussitôt, sans profondeur de récursion à faire exploser ni cache de mémoïsation à préchauffer entre les requêtes.
Domaine, validation et accès
L'entrée doit être un objet JSON, n doit être un entier, et il doit appartenir à l'intervalle fermé de 0 à 20 ; tout le reste déclenche une erreur invalid_input typée dont le message nomme le champ fautif au lieu d'une exception nue.
Cas d'intégration
Jeux de données de test
Générez des nombres de Bell fiables comme valeurs golden pour les tests unitaires de votre propre code de partitionnement, de regroupement ou d'énumération.
Outillage de suites
Alimentez en masse des recherches OEIS A000110 ou des feuilles de calcul via l'API, sans embarquer de bibliothèque de grands entiers côté client.
Questions techniques
Que renvoie une entrée incorrecte ?
Une erreur invalid_input typée nommant le champ — par exemple un n non entier, négatif ou hors domaine, ou bien un n absent.
Est-ce gratuit ?
Oui dans le navigateur, sous forme de widget tier A. L'API coûte $0.002 par appel réussi ; les tâches en échec ne sont pas facturées.