Nombre de compositions d'un entier
Le nombre 5 s'écrit de 16 façons comme somme ordonnée, car les compositions de n sont toujours 2^(n-1). Saisissez un n jusqu'à 10000 et obtenez le décompte exact, même avec des milliers de chiffres. 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
- Quantité
- 16
Une composition ordonnée d'un entier positif n est un n-uplet d'entiers positifs qui s'additionnent à n, où l'ordre des parts fait partie de l'identité : 1+3 et 3+1 sont deux compositions distinctes de quatre. La combinatoire classique prouve que le nombre de telles sommes ordonnées est toujours deux à la puissance n moins un. Cette capacité accepte un seul entier positif n et renvoie ce décompte exact, avec la formule fermée 2^(n-1), afin que vous n'ayez pas à énumérer chaque n-uplet, à parcourir un arbre binaire de séparateurs, ni à risquer une erreur d'une unité en vérifiant des devoirs, des cas de concours ou des identités de fonctions génératrices.
Pourquoi le nombre de compositions ordonnées vaut deux à la n moins un
Écrivez n uns en une rangée. Entre ces uns se trouvent exactement n moins un interstices. Pour chaque interstice, vous pouvez insérer une barre qui scinde la suite en une nouvelle part, ou laisser l'interstice vide pour que les uns adjacents restent collés en une part plus grande.
Chaque motif de barres et d'interstices vides produit une composition ordonnée de n, et toute composition naît d'exactement un tel motif. Comme chacun des n moins un interstices a deux choix indépendants, le nombre total de motifs est deux élevé à la puissance n moins un. Un contrôle d'une ligne pour n égal à quatre donne huit, ce qui correspond aux huit compositions (4), (1,3), (3,1), (2,2), (1,1,2), (1,2,1), (2,1,1) et (1,1,1,1).
Pour n égal à un, il existe un seul motif sans barre et le décompte vaut un, la composition (1) elle-même. La forme fermée est exacte pour tout entier positif, de sorte qu'un devoir qui affirme neuf compositions de quatre a simplement tort, et un générateur qui a besoin de la taille de la famille des compositions peut dimensionner des tampons à partir de ce décompte sans jamais les lister.
L'ordre est essentiel : si vous identifiez 1+3 avec 3+1, vous avez quitté les compositions pour le monde des partitions, dont le décompte p(n) n'a pas cette formule en puissance de deux et constitue une intention de recherche différente.
Ce que vous envoyez, ce que vous recevez, et quand la requête échoue
La règle produit est stricte : n inférieur à un est invalide, y compris zéro et tout négatif, car la définition usuelle d'une composition exige un entier positif à composer. En cas de succès, la réponse répète le n normalisé, renvoie count comme chaîne décimale de la valeur exacte 2^(n-1), et inclut formula comme la chaîne d'identité 2^(n-1) pour que les clients affichent le théorème sans le coder en dur.
Le décompte est une chaîne à dessein : deux à la cinquante-trois quitte déjà la plage des entiers sûrs de JavaScript, et cette page est utile précisément lorsque n est assez grand pour que lister chaque composition soit sans espoir. Une validation échouée n'est pas facturée.
Où un décompte de compositions a sa place, et comment il est tarifé
Utilisez ce décompte lorsque la question porte sur le nombre de sommes ordonnées, et non sur l'identité des n-uplets. Les programmeurs de concours confrontent les solutions candidates de problèmes de dénombrement de compositions à un oracle déterministe au lieu de réimplémenter une puissance BigInt dans chaque harnais de langage. Les enseignants assignent la preuve des interstices et des barres et ont besoin d'une vérification automatique que 2^(n-1) est bien la taille de la famille avant que les étudiants n'essaient de la lister.
Les bacs à sable d'entretien et les démonstrations de fonctions génératrices ont besoin du même nombre à chaque question. Le travail de données et de compilateurs dimensionne parfois un espace de recherche de découpages par étapes ordonnées d'un budget n et doit connaître la cardinalité avant d'allouer.
Si vous avez vraiment besoin de chaque n-uplet, arrêtez-vous ici et utilisez un outil de listage sur un petit n ; si vous avez besoin de compositions en exactement k parts, c'est le binomial C(n-1, k-1) et une autre page ; si l'ordre n'importe pas, vous voulez la fonction de partition p(n). Gardez n dans les bornes documentées, traitez la chaîne count comme l'entier exact, et vous obtenez un décompte de compositions reproductible sans installer un système de calcul formel.
Cas d’usage
Vérification scolaire de l'identité 2^(n-1)
Donnez aux élèves un n positif et vérifiez que leurs compositions comptées à la main correspondent à la forme fermée avant de lister chaque n-uplet.
Validateurs de concours et d'entretiens
Confrontez les solutions candidates de problèmes de dénombrement de compositions à un décompte BigInt exact plutôt que de réimplémenter une puissance de deux dans chaque harnais.
Dimensionner l'espace des découpages ordonnés
Sachez combien de découpages par étapes ordonnées d'un budget n existent avant d'allouer des tampons ou de lancer un énumérateur.
Questions fréquentes
Que renvoie le décompte des compositions d'un entier ?
Pour un entier positif n, il renvoie le nombre exact de compositions ordonnées de n sous forme de chaîne décimale, plus la formule 2^(n-1). Il ne liste pas les n-uplets.
Pourquoi la formule est-elle deux à la n moins un et non 2^n ?
Il y a n uns en rangée et seulement n−1 interstices entre eux. Chaque interstice est un choix binaire (barre ou pas de barre), donc le décompte est 2^(n−1), pas 2^n.
Cette page énumère-t-elle chaque composition ?
Non. Cette page répond à combien de compositions existent. Lister chaque n-uplet ordonné est une autre tâche et n'est pratique que pour un petit n.
Comment le décompte de compositions est-il tarifé ?
L'outil du navigateur est gratuit et s'exécute en local.
Combien de compositions le nombre 5 possède-t-il ?
Il en possède 16. Entre cinq uns se trouvent 4 intervalles, et chacun reçoit ou non une coupure : 2 choix par intervalle, donc 2^4 = 16 sommes ordonnées.
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/numth/compositions-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/numth/compositions-count", {
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/numth/compositions-count",
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/numth/compositions-count", 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/numth/compositions-count", 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": "numth.compositions_count",
"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 | 1 |
max_n | 10000 |
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
La même fonction pure s'exécute dans l'outil gratuit du navigateur et sur le chemin API. Les valeurs de n inférieures à un sont rejetées avec invalid_input et ne sont jamais facturées.
Pourquoi le nombre de compositions ordonnées vaut deux à la n moins un
Cette identité est tout l'algorithme que cette capacité évalue : elle ne parcourt pas de branches de première part, n'alloue pas un tableau de n-uplets et ne tire pas d'échantillon.
Ce que vous envoyez, ce que vous recevez, et quand la requête échoue
Envoyez en POST un corps JSON avec l'entier positif obligatoire n, l'entier dont vous voulez compter les compositions ordonnées. Les alias integer, value et N sont acceptés pour le même champ. n doit être un nombre entier de un à dix mille ; les chaînes numériques de chiffres sont acceptées, tandis que les fractions, booléens, chaînes vides et champs manquants échouent avec invalid_input en nommant n. Les valeurs au-dessus du maximum publié échouent aussi, afin qu'une puissance de deux de plusieurs milliers de chiffres ne bloque ni le Worker ni le navigateur. Contrôles typiques à figer dans les tests : n égal à un donne count 1 ; n égal à cinq donne count 16 ; n égal à dix donne count 512 ; n égal à zéro est invalid_input.
Où un décompte de compositions a sa place, et comment il est tarifé
L'usage API puise dans le solde prépayé KIT au tarif de base publié $0.002 par élément réussi ; invalid_input ne consomme pas le solde.
Questions techniques
Quelles valeurs de n sont acceptées ?
Les entiers de 1 à 10000. Zéro, les négatifs, les fractions, n manquant et les valeurs au-dessus du maximum échouent avec invalid_input et ne sont pas facturés.