Lister toutes les compositions ordonnées d'un entier
Le nombre 4 possède 8 compositions, de 1+1+1+1 jusqu'à 4 lui-même, et cet outil les liste toutes dans un ordre fixe avec le total en regard. Il accepte tout n de 1 à 16. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 4
- Quantité
- 8
Une composition ordonnée d'un entier positif n est une manière d'écrire n comme somme d'entiers positifs où l'ordre des termes compte : 1+2 et 2+1 sont deux compositions distinctes de 3, et il en existe toujours exactement 2 à la puissance n moins un au total. Cette capacité prend un unique entier positif n et renvoie chaque composition sous forme de tableau ordonné de parts, ainsi que le décompte total, ce qui vous évite de construire à la main un arbre récursif ou de risquer d'oublier une branche lorsque vous corrigez un devoir, générez des jeux de test ou explorez une combinatoire proche des partitions.
Ce que sont les compositions ordonnées et en quoi elles diffèrent des partitions
En théorie des nombres et en combinatoire, une composition de n est une suite ordonnée d'entiers positifs dont la somme vaut n. Contrairement aux partitions d'entiers, où seul le multiensemble des parts importe et où 1+2 est identifié à 2+1, les compositions traitent chaque ordre comme un objet distinct. Pour tout n supérieur ou égal à un, il existe exactement deux à la puissance n moins un compositions : chaque composition correspond au fait de placer ou d'omettre un séparateur entre deux unités consécutives dans une ligne de n uns.
Les manuels utilisent les compositions lorsque l'ordre encode une séquence, un classement ou une allocation par étapes — par exemple les tailles successives de blocs dans un planning, les longueurs de plages dans une chaîne binaire, ou les tailles de pas le long d'un chemin qui doit couvrir exactement n unités. Les étudiants confondent souvent les deux familles car toutes deux répondent à « comment écrire n comme une somme », mais seules les compositions tiennent compte de l'ordre de gauche à droite.
Renvoyer la liste ordonnée complète rend cette distinction concrète : vous voyez chaque réarrangement, et non un représentant trié canonique, et le champ de décompte doit correspondre à la formule fermée, ce qui vous permet de repérer immédiatement une énumération manuelle incomplète.
Comment la capacité énumère les compositions et quand elle refuse
Le moteur construit chaque composition par expansion récursive de la première part : pour une somme restante r, il essaie chaque taille de part k de un à r, ajoute k au préfixe en cours de construction, et continue jusqu'à ce que le reste soit nul, moment où la suite complétée est enregistrée. Ce parcours produit un ordre stable et déterministe — des requêtes identiques produisent toujours le même tableau de tableaux — sans dépendre d'une horloge, du hasard ou de l'état du réseau.
La réponse indique n lui-même, le tableau des compositions, et un décompte égal à la longueur de ce tableau (qui vaut toujours deux à la puissance n moins un pour un n valide). Un champ n absent, non entier ou mal formé est rejeté de la même façon et n'est jamais facturé.
Où utiliser la liste et ce qu'elle coûte
Les usages typiques incluent la vérification des réponses d'étudiants qui listent les compositions d'un n donné, la génération de cas de test exhaustifs pour des fonctions qui acceptent des suites ordonnées de parts, l'exploration d'identités combinatoires comptant les compositions à tailles de parts restreintes par filtrage a posteriori de la liste complète, et la documentation des options d'échelonnement lorsqu'un budget de n unités peut être découpé en phases ordonnées.
Gardez n dans les bornes documentées pour que la réponse reste maniable ; si vous n'avez besoin que du décompte, vous pouvez toujours utiliser cet outil pour un petit n ou appliquer la formule fermée deux à la puissance n moins un hors de l'outil pour des travaux théoriques plus vastes. Le parcours navigateur s'exécute localement et ne requiert aucun compte. Traitez le décompte renvoyé comme faisant autorité pour les tableaux listés plutôt que de recalculer la longueur dans un code client susceptible de dévier de ce contrat.
Cas d’usage
Vérification de devoirs et de concours
Comparez la liste ordonnée des compositions rendue par un étudiant pour un n donné à l'énumération complète canonique et à son décompte, plutôt que de corriger des arbres tracés à la main.
Exploration combinatoire et démonstrations pédagogiques
Montrez en direct comment l'ordre distingue les compositions des partitions, et confirmez que le décompte renvoyé vaut toujours deux à la puissance n moins un.
Questions fréquentes
Comment lister toutes les compositions ordonnées d'un entier ?
La réponse inclut les compositions sous forme de tableaux de parts, ainsi que le décompte.
Quelle est la différence entre une composition et une partition ?
Les compositions tiennent compte de l'ordre (1+2 diffère de 2+1). Les partitions ignorent l'ordre et ne conservent que le multiensemble des parts.
Combien de compositions le nombre 4 possède-t-il ?
Il en possède 8 : 1+1+1+1, 1+1+2, 1+2+1, 1+3, 2+1+1, 2+2, 3+1 et 4. Cela correspond à 2^(n-1) ; si votre liste faite à la main en compte moins, il en manque.
Pourquoi n ne peut-il pas dépasser 16 ?
La liste double chaque fois que n augmente d'une unité, si bien que les grandes valeurs produiraient une réponse énorme. Jusqu'à 16, la liste complète reste lisible ; si seul le nombre vous intéresse, la formule 2^(n-1) suffit.
La liste sort-elle toujours dans le même ordre ?
Oui. Le même n renvoie toujours la même liste dans le même ordre, construite en essayant chaque première part de la plus petite à la plus grande, pour que vous puissiez comparer ligne par ligne.
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-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":4}'const res = await fetch("https://api.kit.forhosting.com/numth/compositions-list", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/compositions-list",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/compositions-list", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/compositions-list", 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": 4
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.compositions_list",
"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
Comment la capacité énumère les compositions et quand elle refuse
Vous envoyez un corps JSON avec un unique champ requis n, un entier positif compris entre un et seize. Les valeurs inférieures à un échouent avec invalid_input, car zéro et les négatifs ne sont pas des entiers positifs selon la définition usuelle d'une composition. Les valeurs supérieures au plafond publié échouent également avec invalid_input : la taille de la liste double à chaque incrément de n, si bien qu'une énumération non bornée ferait exploser la taille de la réponse et le temps CPU du Worker ; le maximum documenté maintient l'énumération complète praticable aussi bien pour le navigateur que pour l'API.
Où utiliser la liste et ce qu'elle coûte
Utilisez l'outil gratuit du navigateur pour une vérification visuelle rapide sur un petit n, ou appelez l'API lorsqu'un script, un carnet de notes, un générateur ou un carnet de recherche doit résoudre de nombreuses valeurs de la même façon à chaque fois. L'usage de l'API est débité du solde KIT prépayé au tarif de base publié $0.002 par requête réussie ; une validation échouée ne consomme pas de solde.
Cas d'intégration
Génération exhaustive de jeux de test
Injectez de petites valeurs de n dans l'API et utilisez chaque composition comme cas d'entrée pour des fonctions traitant des suites ordonnées d'entiers positifs sommant à un budget.
Questions techniques
Pourquoi l'outil rejette-t-il les grands n ?
Le nombre de compositions vaut 2^(n-1). Au-delà du maximum publié, la liste complète est trop volumineuse pour être énumérée sans risque en une seule requête, si bien que l'appel échoue avec invalid_input.
La liste des compositions d'un entier est-elle gratuite ?
Le widget du navigateur est gratuit et s'exécute localement. Les appels API utilisent le solde KIT prépayé au tarif de base publié $0.002 ; une entrée invalide n'est pas facturée.
Le résultat est-il toujours le même pour un même n ?
Oui. L'algorithme est une énumération récursive pure, sans hasard ni horodatage, si bien que des entrées identiques produisent un JSON identique.