Combinaisons avec répétition
Comptez les sélections où chaque type peut revenir et où l'ordre ne compte pas : 3 choix parmi 5 types donnent 35, soit C(7, 3), le même dénombrement « étoiles et barres » qui sert à répartir des objets identiques. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Nombre de types distincts
- 5
- Résistance (Ω)
- 3
- Quantité
- 35
- N plus r moins 1
- 7
- N max
- 500
- R max
- 500
Ce calculateur de combinaisons avec répétition renvoie le nombre de multiensembles distincts de taille r que vous pouvez former à partir de n types, lorsque chaque type peut être choisi plus d'une fois et que l'ordre n'a pas d'importance. Parmi les vérifications simples que vous connaissez peut-être déjà : cinq types et trois choix donnant trente-cinq, trois types et deux choix donnant six, et n'importe quel n valide avec zéro choix donnant un pour la sélection vide. Le moteur n'utilise qu'une arithmétique binomiale BigInt déterministe : aucun appel réseau, aucun échantillonnage et aucun raccourci dépendant de la date.
Ce que signifient les combinaisons avec répétition et ce que contient la réponse
Les combinaisons avec répétition comptent des sélections non ordonnées où le même type peut apparaître plus d'une fois. Cela diffère des combinaisons ordinaires C(n, r), qui interdisent la réutilisation, et des permutations, qui tiennent compte de l'ordre. Formellement, le nombre est C(n + r − 1, r) pour n positif et r non négatif ; de façon équivalente C(n + r − 1, n − 1).
Les étoiles et les barres interprètent ce même nombre comme le nombre de façons de placer r éléments indiscernables dans n cases discernables, ce qui explique pourquoi l'outil est utile à la fois pour la combinatoire pure et pour des problèmes de comptage appliqués tels que la distribution d'unités identiques entre catégories.
Ce calculateur renvoie les n et r demandés, le nombre exact sous forme de chaîne décimale, l'indice supérieur intermédiaire n plus r moins un, une courte chaîne de formule telle que C(7, 3), et les maxima publiés afin que les clients puissent valider avant d'envoyer un lot. La règle n-inférieur-à-un est intentionnelle : zéro type n'est pas un domaine standard pour des combinaisons de multiensembles de taille positive, et le traiter comme une erreur du client garde les tests de référence stables et le cache sûr.
Où les combinaisons de multiensembles interviennent dans les études, le code et la modélisation
Les élèves rencontrent les combinaisons avec répétition lorsqu'un manuel les oppose aux combinaisons ordinaires, lorsqu'un exercice d'étoiles et de barres demande des solutions non négatives à une équation diophantienne linéaire, ou lorsqu'ils ont besoin d'un décompte propre de multiensembles de taille fixe. Les enseignants peuvent pré-générer des corrigés pour des n et r modestes sans se fier à des applications de calcul opaques qui arrondissent de grands entiers ou basculent silencieusement en notation scientifique.
Les développeurs appellent le même contrat depuis des scripts pour amorcer des vecteurs de test déterministes, pour dimensionner des modèles d'inventaire ou de type collectionneur de coupons qui autorisent des catégories répétées, ou pour satisfaire des énoncés de défis de programmation qui exigent la valeur exacte de multichoisir plutôt qu'une approximation en espace logarithmique. La pratique des concours a souvent besoin d'une source rapide et hors ligne de rangs de combinaisons de multiensembles, afin que les solutions puissent être vérifiées sans télécharger de tables OEIS, sous la pression du temps.
Les analystes de produit et d'exploitation utilisent ce nombre pour estimer combien de paniers de commande distincts de taille r peuvent survenir à partir de n références, si la quantité par référence n'est pas bornée et que l'ordre de la liste n'a pas d'importance. Associez-le aux outils de factorielle ou de binôme lorsque vous avez besoin de coefficients connexes, aux compteurs de permutations lorsque l'ordre compte, et aux autres points de terminaison mathématiques lorsque vous construisez un petit laboratoire d'outils de combinatoire gratuits et déterministes.
Cas d’usage
Devoirs et vérifications d'étoiles et de barres
Recherchez des valeurs exactes de C(n+r−1, r) pour des exercices de manuel sur les combinaisons de multiensembles et le comptage de solutions entières non négatives.
Données de référence déterministes pour les tests
Générez des chaînes décimales de multichoisir reproductibles pour les tests unitaires, les vérifications de propriétés et les assertions d'intégration continue, sans maintenir de tables à la main.
Dimensionnement d'inventaire et de panier
Comptez les sélections non ordonnées distinctes de r éléments parmi n types lorsque la répétition est autorisée, pour des scénarios de produit ou de modélisation.
Questions fréquentes
Combien coûte le calculateur de combinaisons avec répétition ?
Il est gratuit dans votre navigateur sur cette page.
Comment le nombre est-il défini ?
Le nombre de façons de choisir r éléments parmi n types, avec répétition autorisée et ordre indifférent, est C(n+r−1, r).
Est-ce la même chose que les combinaisons ordinaires C(n, r) ?
Non. Les combinaisons ordinaires interdisent de répéter un type. Cet outil autorise la répétition (combinaisons de multiensembles / multichoisir).
Pourquoi le résultat est-il une chaîne plutôt qu'un nombre ?
Les coefficients binomiaux peuvent dépasser les entiers sûrs de JavaScript.
Quel est le nombre maximal de types et de choix accepté ?
Vous pouvez saisir jusqu'à 500 types et jusqu'à 500 choix. Cette limite garde chaque résultat exact et rapide, alors que ces nombres grandissent très vite.
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/combinations-with-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"r":3}'const res = await fetch("https://api.kit.forhosting.com/combo/combinations-with-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"r": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/combinations-with-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"r": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/combinations-with-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"r":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"r":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/combinations-with-repetition", 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,
"r": 3
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.combinations_with_repetition",
"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
max_n | 500 |
max_r | 500 |
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 forme fermée classique est n plus r moins un choisir r, notée C(n+r−1, r), aussi appelée multichoisir, combinaisons de multiensembles, ou le nombre de solutions entières non négatives de x_1 + … + x_n = r selon la méthode des étoiles et des barres. Utilisez-le gratuitement dans le navigateur pour vos devoirs, votre préparation aux concours et vos katas de programmation, ou appelez l'API à $0.002 par requête réussie lorsque vous avez besoin de données de référence de combinaisons de multiensembles reproductibles en intégration continue, dans des modèles d'inventaire, ou des démonstrations pédagogiques.
Ce que signifient les combinaisons avec répétition et ce que contient la réponse
Il n'existe aucune voie approximative en virgule flottante présentée comme vraie et aucun échantillonnage aléatoire de sous-ensembles : le moteur construit soit le produit binomial exact dans la plage prise en charge, soit rejette l'entrée avec invalid_input. Les cas rejetés incluent l'absence de n ou de r, des nombres non entiers, des fractions, une notation scientifique, des valeurs supérieures aux plafonds documentés, un n inférieur à un, et tout r négatif. Si vous avez besoin de combinaisons ordinaires sans remise, de permutations, ou d'une énumération des multiensembles réels, utilisez ces outils dédiés ; cette page ne répond qu'au nombre de combinaisons de multiensembles, avec une sortie BigInt exacte adaptée aux fiches d'exercices, aux tests unitaires et aux clients de l'API qui ne doivent pas perdre de chiffres au-delà des entiers sûrs de JavaScript.
Comment n et r sont lus et comment BigInt garde chaque chiffre exact
Les signes plus optionnels en tête sont autorisés ; les espaces incrustés, les préfixes hexadécimaux, les signes négatifs là où ils sont interdits, et la notation exponentielle sont rejetés avec un message clair, pour qu'une mauvaise cellule ne se transforme pas en mauvais nombre. Zéro pour r est valide et renvoie un, conformément aux conventions du produit vide et de la sélection vide utilisées en mathématiques discrètes. Le calcul utilise la formule multiplicative BigInt pour C(a, b) : multiplier des facteurs successifs (a − i) / (i + 1) pour i de zéro jusqu'au plus petit de b et a − b, afin que les valeurs intermédiaires restent exactes sans construire de factorielles complètes qui gaspilleraient temps et mémoire. Les champs privilégiés sont n pour le nombre de types et r pour le nombre d'éléments à sélectionner, mais les alias types et kinds pour n et k et count pour r sont acceptés, afin que les feuilles de calcul, les chaînes de requête et les formulaires typés puissent réutiliser le même contrat. Le moteur impose des maxima stricts de cinq cents pour n et r, ce qui garde la mémoire et la latence dans un budget prévisible sur la voie du navigateur gratuit et sur le Worker en périphérie, même si les coefficients binomiaux croissent rapidement. Chaque valeur intermédiaire est un BigInt et le nombre final est sérialisé avec toString, afin que le JSON ne perde jamais de chiffres comme le feraient les doubles IEEE au-delà du cinquante-troisième bit. Associez l'exécution gratuite dans le navigateur sur cette page à l'API payante lorsque vous avez besoin du même résultat mathématique au sein d'un pipeline automatisé, sans réimplémenter vous-même les étoiles et les barres.
Où les combinaisons de multiensembles interviennent dans les études, le code et la modélisation
Sur cette page, le travail s'exécute entièrement dans votre navigateur ; via l'API, chaque recherche réussie coûte $0.002, la validation échouée n'est pas facturée, et rien n'est conservé après le renvoi de la réponse. Cette séparation — exploration interactive gratuite et API payante identique — correspond au reste du catalogue de niveau A de KIT, et vous permet de passer d'une démonstration en classe à un pipeline automatisé sans changer le résultat mathématique.
Questions techniques
Que se passe-t-il si n est inférieur à 1 ou r est négatif ?
Les deux cas sont rejetés avec invalid_input. n doit être au moins égal à 1 et r doit être non négatif.