Nombres de Stirling de seconde espèce
Comptez les façons de répartir des éléments en groupes sans nom et non vides : 5 personnes forment 2 équipes de 15 façons et 3 équipes de 25 façons, S(5,2) et S(5,3). Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 5
- K
- 2
- Valeur
- 15
- Quantité
- 15
Les nombres de Stirling de seconde espèce répondent à une question de dénombrement fondamentale en mathématiques discrètes : étant donné n objets distincts, de combien de façons pouvez-vous les partitionner en exactement k groupes non vides non étiquetés ? La réponse s'écrit S(n,k) ou parfois {n choose k} avec des accolades. Ces nombres apparaissent dès que vous regroupez des personnes en équipes sans nommer les équipes, répartissez un ensemble de clés dans des seaux non étiquetés, comptez les fonctions surjectives à un facteur factoriel près, construisez les nombres de Bell comme somme sur k, ou notez des devoirs qui demandent des partitions d'ensembles plutôt que des permutations. Cette capacité accepte des entiers non négatifs n (nombre d'éléments) et k (nombre de sous-ensembles non vides) et renvoie le S(n,k) exact sous forme de chaîne décimale calculée par programmation dynamique BigInt, de sorte que des valeurs bien au-delà des limites d'entiers sûrs ordinaires restent correctes chiffre par chiffre. Les entrées avec un k négatif ou un k supérieur à n sont rejetées avec une erreur de validation claire au lieu d'un zéro silencieux ou d'une mauvaise réponse.
Comment se définissent les nombres de Stirling de seconde espèce
Un nombre de Stirling de seconde espèce S(n,k) compte les partitions d'un ensemble à n éléments en exactement k sous-ensembles non vides non étiquetés. L'ordre à l'intérieur d'un sous-ensemble n'importe pas, et les sous-ensembles eux-mêmes ne sont pas ordonnés : la partition {{1,2},{3}} est la même que {{3},{1,2}}. La récurrence standard est S(n,k) = k · S(n−1,k) + S(n−1,k−1).
Intuitivement, lorsque vous ajoutez le plus récent élément n, soit il forme un singleton à lui seul (alors les n−1 éléments restants forment k−1 sous-ensembles, comptés par S(n−1,k−1)), soit il rejoint l'un des k sous-ensembles existants dans une partition des n−1 premiers éléments en k blocs (k choix, fois S(n−1,k)). Les cas de base qui ferment la table sont S(0,0) = 1, S(n,0) = 0 pour n > 0, S(0,k) = 0 pour k > 0, S(n,1) = 1 et S(n,n) = 1.
Vérifications classiques de manuel : S(3,2) = 3, S(4,2) = 7, S(5,2) = 15 et S(5,3) = 25. Le nombre de Bell B_n, total des partitions d'un n-ensemble avec n'importe quel nombre de blocs, est la somme de S(n,k) sur k de zéro à n. Objets liés mais différents : nombres de Stirling de première espèce (qui suivent les permutations par nombre de cycles) et coefficients binomiaux (qui choisissent des éléments sans partitionner le reste).
Cette implémentation n'utilise jamais d'approximation flottante, d'échantillonnage Monte Carlo ni de tables externes : elle remplit une ligne de programmation dynamique avec une arithmétique BigInt exacte pour que chaque chiffre soit correct. Le chemin est entièrement déterministe — sans graines aléatoires, horloges, réseau ni dérive de modèle — de sorte que les mêmes n et k produisent toujours la même chaîne.
Où les dénombrements de Stirling de seconde espèce apparaissent dans le travail réel
Les cours de combinatoire et les concours de programmation demandent constamment de combien de façons scinder n personnes étiquetées en k équipes non étiquetées, combien de relations d'équivalence sur n éléments ont exactement k classes, ou de combien de façons distribuer n cadeaux distincts dans k boîtes identiques non vides — tout cela égale S(n,k).
Les concepteurs d'algorithmes utilisent des tables de Stirling de seconde espèce pour analyser des structures de données de partition d'ensembles, des croquis de clustering à nombre fixe de clusters, ou compter les façons dont un processus récursif peut regrouper des résultats intermédiaires. Les cours de probabilité et de statistique relient S(n,k) au nombre de façons d'assigner n résultats distincts à k seaux non vides non étiquetés et à la forme fermée du nombre de surjections d'un n-ensemble sur un k-ensemble, qui est k!
· S(n,k). Éducateurs et préparation aux entretiens montrent souvent un court triangle de petites valeurs S(n,k) ; calculer une seule entrée en un appel maintient les démos interactives alignées sur manuels et corrigés sans entretenir à la main de grandes tables. Si vous avez ensuite besoin des nombres de Stirling de première espèce, des nombres de Bell seuls, des dénombrements de surjection avec le facteur k!
déjà appliqué, ou d'une liste explicite de partitions plutôt que du compte, traitez-les comme des intentions de recherche distinctes plutôt que de surcharger cette page.
Cas d’usage
Devoirs et concours de partition d'ensembles
Calculez S(n,k) exact pour des problèmes d'olympiade, exercices de maths discrètes et corrigés automatiques demandant des partitions non étiquetées en k blocs.
Analyse de surjection et de clustering
Dimensionnez le facteur de partition derrière les fonctions surjectives n→k et croquis de clustering à k fixe sans tables flottantes.
Blocs de construction des nombres de Bell
Générez des entrées individuelles de seconde espèce en sommant S(n,k) sur k ou en validant des pipelines de nombres de Bell contre des triangles de manuel.
Questions fréquentes
Qu'est-ce qu'un nombre de Stirling de seconde espèce ?
S(n,k) compte les façons de partitionner n éléments distincts en exactement k sous-ensembles non vides non étiquetés. L'ordre dans et entre sous-ensembles n'importe pas.
En quoi diffère-t-il de la première espèce ?
La première espèce compte les permutations par nombre de cycles. La seconde espèce compte les partitions d'ensembles par nombre de blocs. Ce sont des questions de dénombrement différentes.
Que se passe-t-il si k est négatif ou supérieur à n ?
Ce calculateur exige 0 ≤ k ≤ n ; k négatif ou dépassant n est rejeté et non facturé.
Pourquoi la valeur est-elle une chaîne plutôt qu'un nombre ?
Les nombres de Stirling dépassent vite les entiers sûrs de JavaScript. Les chaînes décimales gardent chaque chiffre exact pour les grands S(n,k).
Quel lien y a-t-il avec les nombres de Bell ?
Le nombre de Bell compte toutes les façons de répartir un ensemble en groupes, quel que soit leur nombre. Il s'obtient en additionnant les nombres de Stirling de seconde espèce pour k allant de zéro à n.
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/combo/stirling-second \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"k":2}'const res = await fetch("https://api.kit.forhosting.com/combo/stirling-second", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"k": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/stirling-second",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"k": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/stirling-second", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"k":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"k":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/stirling-second", 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,
"k": 2
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.stirling_second",
"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.
Limites
min_n | 0 |
max_n | 1000 |
min_k | 0 |
max_k | 1000 |
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
L'outil gratuit du navigateur et l'API payante partagent une seule fonction pure, de sorte que démonstrations de cours et pipelines automatisés ne divergent jamais sur la même paire.
Comment se définissent les nombres de Stirling de seconde espèce
Les bornes déclarées maintiennent n et k entre zéro et mille avec la règle que k ne doit pas dépasser n, ce qui garde la latence du pire cas adaptée à un outil gratuit dans le navigateur et un chemin Worker léger tout en couvrant concours, cours et pipelines pour des dénombrements exacts de partitions.
Ce que vous envoyez et ce que vous recevez
Le nombre d'éléments n doit être un entier de zéro à mille inclus ; le nombre de sous-ensembles k doit être un entier de zéro à mille inclus et satisfaire k ≤ n. Les messages d'erreur nomment le champ en cause et la règle en échec pour que formulaires et scripts corrigent l'entrée sans deviner. En cas de succès la réponse inclut toujours n et k normalisés, value et count comme la même chaîne décimale exacte de S(n,k), et une courte chaîne de formule telle que S(5,2) pour l'affichage. Fournissez un entier n obligatoire dans le champ n (alias items ou size) et un entier k obligatoire dans le champ k (alias subsets ou parts). Champs manquants, non-entiers, décimaux, n négatif, k négatif et tout k qui dépasse n sont rejetés avec invalid_input et ne sont pas facturés. Vérifications d'exemple : n égal à cinq et k égal à deux donne le compte quinze ; n égal à cinq et k égal à trois donne vingt-cinq ; n égal à trois et k égal à un donne un ; n égal à quatre et k égal à quatre donne un ; n égal à zéro et k égal à zéro donne un ; k égal à six avec n égal à trois donne invalid_input car k dépasse n ; k égal à moins un donne invalid_input. Le contrat est un JSON stable adapté aux tests unitaires, démos de cours et pipelines par lots. Le tarif des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation ne consomment pas le solde prépayé.
Où les dénombrements de Stirling de seconde espèce apparaissent dans le travail réel
Comme cette capacité est un moteur de parse pur, le prix API est la base publiée de $0.002 par élément réussi et l'échec de validation ne consomme pas le solde.
Questions techniques
Quel est le coût ?
L'outil navigateur est gratuit et s'exécute localement. Les requêtes API utilisent le solde prépayé KIT à $0.002 par élément réussi ; l'entrée invalide n'est pas facturée.