Combinaisons sans répétition
Choisir 3 éléments parmi 10 distincts, sans répétition et sans ordre, donne 120 combinaisons. Indiquez la taille de l'ensemble et celle du groupe pour obtenir le nombre exact, même pour de très grands ensembles : comités, mains de cartes ou échantillons. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 10
- K
- 3
- Quantité
- 120
Les combinaisons sans répétition répondent à une question de dénombrement fondamentale en statistique et en mathématiques discrètes : étant donné n éléments distincts, combien de groupes différents de taille k pouvez-vous former lorsqu'aucun élément n'apparaît deux fois et que l'ordre de sélection n'importe pas ? Cette quantité est le coefficient binomial C(n,k), aussi noté n parmi k. Il n'y a ni échantillonnage, ni réseau, ni arrondi dépendant de la date : chaque couple valide (n, k) produit le même entier à chaque fois.
Ce que dénombrent les combinaisons sans répétition
Les combinaisons sans répétition dénombrent le nombre de façons de choisir un sous-ensemble de k éléments dans un ensemble de n éléments distincts lorsque chaque élément apparaît au plus une fois et que l'ordre de sélection n'importe pas. En classe on dit n parmi k ; en notation statistique c'est le coefficient binomial C(n,k). L'identité classique affirme que C(n,k) vaut la factorielle de n divisée par la factorielle de k multipliée par la factorielle de (n moins k).
Cette même quantité apparaît comme coefficient dans le développement binomial de (x plus y) à la puissance n, et comme le nombre de k-sous-ensembles d'un ensemble à n éléments. Puisque l'ordre est ignoré, choisir Alice puis Bob est la même combinaison que choisir Bob puis Alice, si bien que le décompte est strictement plus petit que la permutation correspondante P(n,k) dès que k vaut au moins deux.
Puisque la répétition est interdite, vous ne pouvez pas tirer la même personne deux fois : c'est la différence avec les combinaisons avec répétition, aussi appelées combinaisons de multiensembles, dont le décompte est C(n+k−1, k). Les cas limites font partie de la définition : C(n,0) et C(n,n) valent tous deux un, C(n,1) égale n, et C(0,0) vaut un par la convention du produit vide.
Si k est plus grand que n, il n'existe pas de k-sous-ensemble d'un n-ensemble, aussi cette calculatrice refuse le couple plutôt que de renvoyer zéro ou un binomial généralisé. L'implémentation ne tire jamais d'échantillon, ne dépend jamais de l'horloge et n'arrondit jamais : elle évalue le produit réduit de (n moins k plus un) jusqu'à n, divisé pas à pas par un jusqu'à k, avec une arithmétique BigInt exacte afin que les grands coefficients restent des entiers précis au lieu de déborder la mantisse d'un flottant.
Usages en classe, échantillonnage et concours
Les enseignants de statistique recourent aux combinaisons sans répétition pour introduire l'échantillonnage sans remise : le nombre de comités distincts de k personnes dans une classe de n, le nombre de mains de k cartes dans un jeu de 52, ou le nombre de façons de tirer k unités défectueuses dans un lot de n pour un schéma hypergéométrique.
Ces problèmes partagent le même entier C(n,k) ; cette page s'adresse à ceux qui cherchent cette expression explicitement, y compris les apprenants à qui l'on vient de dire de ne pas la confondre avec des combinaisons qui autorisent les répétitions. Les générateurs d'examens peuvent figer le chemin de succès avec n égal à dix et k égal à trois, qui donne cent vingt, et le chemin de rejet avec tout k qui dépasse n, qui doit échouer plutôt que renvoyer zéro.
Les programmeurs de concours et les sandboxes d'entretien ont besoin d'un oracle exact pour les problèmes de dénombrement de combinaisons sans réimplémenter une arithmétique multiprécision dans chaque harnais de langage. Des pages sœurs peuvent viser les permutations, les combinaisons avec répétition ou une calculatrice nCr générique ; cet atterrissage est spécifiquement le libellé sans répétition. Associez le décompte à votre propre code d'énumération si vous avez besoin des sous-ensembles eux-mêmes ; cette capacité ne renvoie que l'entier.
Cas d’usage
Comités et échantillonnage sans remise
Dénombrez combien de comités distincts de k personnes ou d'échantillons de k éléments vous pouvez tirer parmi n personnes ou unités distinctes lorsque l'ordre n'importe pas et que personne n'est choisi deux fois.
Contrôle des devoirs et examens de C(n,k)
Laissez les élèves envoyer n et k et vérifier leur réponse de combinaisons sans répétition calculée à la main contre un décompte déterministe, y compris le rejet ferme lorsque k dépasse n.
Concours et montage hypergéométrique
Récupérez des valeurs exactes de C(n,k) pour construire des tables hypergéométriques ou juger des problèmes de dénombrement, afin que la couche entière reste exacte avant toute étape de probabilité.
Questions fréquentes
Que sont les combinaisons sans répétition ?
Elles dénombrent les façons de choisir k éléments parmi n éléments distincts lorsque l'ordre n'importe pas et qu'aucun élément ne peut être choisi deux fois. Le nombre est C(n,k) = n! / (k! × (n−k)!).
Que se passe-t-il si k est plus grand que n ?
Vous ne pouvez pas choisir plus d'éléments que n'en contient l'ensemble lorsque la répétition est interdite, donc k doit vérifier 0 ≤ k ≤ n.
Quelle est la différence avec les combinaisons avec répétition ?
Sans répétition chaque élément apparaît au plus une fois (sous-ensembles). Avec répétition un élément peut être choisi plus d'une fois (multiensembles), et le décompte est C(n+k−1, k) au lieu de C(n,k).
Pourquoi le nombre de combinaisons est-il une chaîne ?
Les grandes valeurs de C(n,k) dépassent les entiers sûrs de JavaScript. Une chaîne décimale conserve chaque chiffre exact pour tout n et k pris en charge.
Que coûte la calculatrice de combinaisons sans répétition ?
L'outil du navigateur est gratuit et s'exécute en local.
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/stat/combinations-without-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10,"k":3}'const res = await fetch("https://api.kit.forhosting.com/stat/combinations-without-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10,
"k": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/combinations-without-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10,
"k": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/combinations-without-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10,"k":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10,"k":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/combinations-without-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": 10,
"k": 3
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.combinations_without_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 | 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
Cette calculatrice accepte le couple n et k, évalue l'identité exacte factorielle de n sur factorielle de k fois factorielle de (n moins k), et renvoie le nombre de combinaisons sous forme d'un résultat JSON déterministe. Lorsque k est plus grand que n, la sélection est impossible : la tâche échoue avec invalid_input au lieu d'inventer un zéro ou une extension signée.
Comment envoyer n et k et lire le décompte
Le champ n est la taille de l'ensemble distinct — l'indice supérieur de C(n,k) — et doit être un entier de zéro à dix mille. Le champ k est le nombre d'éléments que vous choisissez sans en remettre aucun — l'indice inférieur — et doit être un entier de zéro jusqu'à n. Une réponse réussie répète n et k comme nombres, renvoie count comme chaîne décimale de la valeur exacte de la combinaison, et inclut formula comme l'identité C(n,k)=n! /(k!( n-k)!) afin que les clients puissent l'afficher ou la journaliser sans la coder en dur. Utilisez le point d'accès depuis des correcteurs de devoirs, des validateurs de concours de programmation, des sandboxes de préparation d'entretien, des jobs d'enrichissement de tableur et des démonstrations de probabilité qui ont besoin de C(n,k) avant toute étape flottante. Envoyez un corps JSON avec deux entiers non négatifs obligatoires. Les alias total et N sont acceptés avec le même sens. Les alias r, choose et K se mappent sur k. Une validation échouée — n ou k manquant, non entier, fraction, valeur négative, valeur au-dessus du maximum publié, ou k supérieur à n — renvoie invalid_input et n'est jamais facturée. Le tarif est un forfait de $0.002 par requête réussie avec unité item. Préférez le décompte en chaîne plutôt que de forcer un Number JavaScript afin que les coefficients plus grands que la limite des entiers sûrs ne perdent jamais de chiffres de bas ordre dans le transport JSON.
Usages en classe, échantillonnage et concours
Gardez n au plus à dix mille pour que le pire cas C(10000,5000) se termine rapidement sur un isolat Worker et dans le navigateur, tout en couvrant encore des tailles d'enseignement et de concours bien au-delà de la plage sûre de Number. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui garde les scripts exploratoires peu coûteux lorsqu'un élève saisit un k impossible en apprenant le contrat.