Tale spé · Chapitre 01 · Algèbre et géométrie

Combinatoire et dénombrement

Principes additif et multiplicatif, k-uplets, factorielle, combinaisons, triangle de Pascal.

Ce qu'il faut savoir faire

  • Principes additif et multiplicatif
  • K-uplets
  • Factorielle
  • Combinaisons
  • Triangle de Pascal

À l'été 1654, deux des plus grands esprits de France échangent des lettres à propos… de jeux de dés et de paris. Antoine Gombaud, chevalier de Méré, joueur mondain et fin observateur, a soumis à Blaise Pascal des problèmes qui le tourmentent : combien de lancers de deux dés faut-il pour avoir intérêt à parier sur un double six ? Et surtout, comment partager équitablement les mises d'une partie interrompue avant son terme ? Pascal en discute par courrier avec Pierre de Fermat, magistrat à Toulouse, et de cette correspondance naît une idée révolutionnaire : pour raisonner sur le hasard, il faut d'abord savoir compter — compter les issues possibles, compter les issues favorables, sans jamais les énumérer une à une quand elles se chiffrent en milliers. Cette science du comptage intelligent s'appelle la combinatoire, et c'est elle qui a permis la naissance du calcul des probabilités. La même année, Pascal rédige son Traité du triangle arithmétique, consacré au tableau de nombres que nous appelons aujourd'hui « triangle de Pascal ». L'histoire est ici injuste : ce triangle était connu du mathématicien perse al-Karaji dès le Xe siècle, des savants indiens qui étudiaient les mètres poétiques, puis du Chinois Zhu Shijie qui le publie en 1303 — trois siècles et demi avant Pascal. Ce chapitre reconstruit tout cet édifice, des principes de comptage les plus élémentaires jusqu'au triangle et à ses propriétés, avec un fil conducteur constant : avant de compter, toujours se demander ce que l'on compte.

Ensembles finis, cardinal et produit cartésien

La combinatoire compte des objets. Pour le faire proprement, il faut d'abord un vocabulaire précis sur les collections d'objets : celui des ensembles.

Définition

Ensemble fini et cardinal. Un ensemble E est dit fini lorsqu'il possède un nombre fini d'éléments. Ce nombre s'appelle le cardinal de E et se note Card(E) (on rencontre aussi les notations E et #E).

Par exemple, E={a;b;c} est fini et Card(E)=3. L'ensemble vide est fini, de cardinal 0.

Rappelons qu'un ensemble ne tient aucun compte de l'ordre ni des répétitions : {a;b;c}, {c;a;b} et {a;b;c;a} désignent exactement le même ensemble. Deux ensembles A et B sont dits disjoints lorsqu'ils n'ont aucun élément commun, c'est-à-dire lorsque AB= ; leur réunion AB est alors appelée réunion disjointe. Plus généralement, des ensembles A1,A2,,Am sont deux à deux disjoints lorsque deux quelconques d'entre eux sont toujours disjoints.

À côté des ensembles, la combinatoire manipule un second type de collection, où l'ordre compte : les listes.

Définition

Couples, k-uplets et produit cartésien. Soient A et B deux ensembles. Le produit cartésien A×B est l'ensemble des couples (a;b)aA et bB.

Plus généralement, un k-uplet (ou une k-liste) d'éléments de A est une liste ordonnée (a1;a2;;ak) de k éléments de A, non nécessairement distincts. L'ensemble des k-uplets d'éléments de A se note Ak=A×A××A (k facteurs). Pour k=2 on parle de couples, pour k=3 de triplets.

Remarque

Liste ou ensemble ? Toute la différence du chapitre. Dans un couple, l'ordre compte et les répétitions sont permises : (a;b)(b;a) dès que ab, et (a;a) est un couple parfaitement légitime. Dans un ensemble, c'est tout le contraire : {a;b}={b;a}, et un élément n'y figure qu'une fois. La plupart des erreurs de dénombrement viennent d'une confusion entre ces deux notions — nous y reviendrons dans la méthode finale.

Les deux principes du dénombrement

Tout le chapitre repose sur deux principes d'une simplicité trompeuse. Le premier dit qu'on peut compter une collection en la découpant en paquets qui ne se recouvrent pas.

Propriété

Principe additif. Si A1,A2,,Am sont des ensembles finis deux à deux disjoints, alors

Card(A1A2Am)=Card(A1)+Card(A2)++Card(Am).

C'est le bon sens même : si une classe réunit 12 élèves qui font de l'espagnol et 18 qui font de l'allemand, et si aucun élève ne fait les deux, la classe compte 12+18=30 élèves. L'hypothèse « deux à deux disjoints » est essentielle : si des élèves suivaient les deux langues, ils seraient comptés deux fois. Le second principe gouverne les choix successifs.

Propriété

Principe multiplicatif. Si A et B sont deux ensembles finis, alors

Card(A×B)=Card(A)×Card(B).

Plus généralement, le cardinal d'un produit cartésien de k ensembles finis est le produit des k cardinaux. Autrement dit : une situation construite en k choix successifs, où le i-ième choix offre toujours ni possibilités, produit n1×n2××nk résultats.

Pour s'en convaincre, imaginons un tableau : pour former un couple (a;b), on choisit la ligne a parmi Card(A) lignes, puis la colonne b parmi Card(B) colonnes ; le tableau contient bien Card(A)×Card(B) cases, une par couple. On peut aussi voir chaque couple comme un chemin dans un arbre : Card(A) branches au premier niveau, chacune suivie de Card(B) branches au second.

Exemple

Composer un menu. Un restaurant propose 3 entrées, 4 plats et 2 desserts. Un menu complet est un triplet (entrée ; plat ; dessert), c'est-à-dire un élément d'un produit cartésien : il y a 3×4×2=24 menus possibles. Inutile de les écrire tous — c'est précisément la force du principe multiplicatif.

Nombre de k-uplets d'un ensemble à n éléments

Le principe multiplicatif appliqué à Ak donne immédiatement le premier grand résultat du chapitre.

Propriété

Nombre de k-uplets. Soit A un ensemble fini à n éléments. Le nombre de k-uplets d'éléments de A est

Card(Ak)=nk.

Démonstration. Un k-uplet de A se construit par k choix successifs : le premier élément parmi n, le deuxième parmi n (les répétitions sont permises, le choix précédent ne retire rien), et ainsi de suite jusqu'au k-ième, toujours parmi n. D'après le principe multiplicatif, il y a n×n××n=nk possibilités.

Exemple

Codes et mots.

  • Un code de carte bancaire est un 4-uplet de chiffres, c'est-à-dire un élément de A4 avec A={0;1;;9} : il en existe 104=10000.
  • Le nombre de « mots » de 5 lettres (ayant un sens ou non) sur l'alphabet latin est 265=11881376.

Le modèle sous-jacent est le tirage avec remise : à chaque étape, toutes les possibilités restent disponibles.

Nombre de parties d'un ensemble

Une partie (ou sous-ensemble) d'un ensemble E est un ensemble dont tous les éléments appartiennent à E. Par exemple, les parties de {a;b} sont , {a}, {b} et {a;b} : il y en a 4, en comptant l'ensemble vide et E lui-même. Ce compte de 4=22 n'est pas un hasard.

Propriété

Nombre de parties. Le nombre de parties d'un ensemble à n éléments est 2n.

Démonstration. Soit E={e1;e2;;en}. À chaque partie F de E, associons le n-uplet de {0;1} dont le i-ième terme vaut 1 si eiF et 0 sinon. Par exemple, pour n=3, la partie {e1;e3} correspond au triplet (1;0;1) et l'ensemble vide au triplet (0;0;0). Cette correspondance associe à toute partie un unique n-uplet, et réciproquement tout n-uplet de {0;1} décrit une unique partie (on prend exactement les éléments marqués d'un 1) : parties de E et n-uplets de {0;1} sont donc en même nombre. Or l'ensemble {0;1} a 2 éléments, si bien que le nombre de ses n-uplets est 2n d'après la propriété précédente.

Ce résultat est un carrefour du programme : le même nombre 2n compte quatre familles d'objets en apparence très différentes, et savoir passer de l'une à l'autre est une compétence attendue.

Propriété

Quatre visages du nombre 2n. Les objets suivants sont en correspondance parfaite, et il y en a 2n de chaque sorte :

  • les parties d'un ensemble à n éléments ;
  • les n-uplets de {0;1} ;
  • les mots de longueur n sur un alphabet à deux lettres ;
  • les chemins d'un arbre binaire à n niveaux — par exemple les issues d'une succession de n épreuves aboutissant chacune à succès ou échec (épreuves de Bernoulli).

Arbre binaire à trois niveaux : chaque feuille correspond à un mot de longueur 3 sur l'alphabet 0-1, il y a 8 chemins

L'arbre ci-dessus illustre le cas n=3 : à chaque niveau, le chemin se sépare en deux branches (0 ou 1), et les 2×2×2=8 chemins complets correspondent aux 8 mots de longueur 3, donc aux 8 parties d'un ensemble à 3 éléments.

Exemple

Les garnitures d'une pizza. Une pizzeria propose 10 garnitures optionnelles. Une pizza se définit par l'ensemble des garnitures retenues, c'est-à-dire par une partie de l'ensemble des 10 garnitures : chaque garniture est prise ou non, comme un mot de 10 lettres sur l'alphabet {oui ; non}. Il y a donc 210=1024 pizzas possibles — dont la pizza « rien du tout », qui correspond à l'ensemble vide.

k-uplets d'éléments distincts et permutations

Modifions le modèle du tirage : cette fois, on tire sans remise. Un élément déjà choisi ne peut plus l'être — les termes de la liste doivent être distincts.

Propriété

Nombre de k-uplets d'éléments distincts. Soit A un ensemble à n éléments et k un entier tel que 1kn. Le nombre de k-uplets d'éléments deux à deux distincts de A est

n(n1)(n2)(nk+1).

C'est un produit de k entiers consécutifs décroissants à partir de n. Si k>n, il n'existe aucun tel k-uplet.

Démonstration. On construit la liste par choix successifs : n possibilités pour le premier élément ; le deuxième doit être différent du premier, il reste n1 possibilités ; puis n2 pour le troisième, et ainsi de suite. Au k-ième choix, k1 éléments sont déjà pris : il reste n(k1)=nk+1 possibilités. Le principe multiplicatif donne le produit annoncé. Et si k>n, la construction s'enraye avant la fin : les éléments viennent à manquer, aucun k-uplet d'éléments distincts n'existe.

Ces listes sans répétition sont parfois appelées arrangements dans le vocabulaire usuel ; ce mot n'est pas indispensable, l'expression « k-uplet d'éléments distincts » dit exactement la même chose. Le cas particulier k=n — ranger tous les éléments — fait apparaître un produit qui mérite son propre nom.

Définition

Factorielle. Pour tout entier naturel n1, on appelle factorielle de n, notée n!, le produit des entiers de 1 à n :

n!=n×(n1)××2×1.

Par convention, 0!=1. Ainsi 1!=1, 2!=2, 3!=6, 4!=24, 5!=120, 6!=720.

Propriété

Permutations. Une permutation d'un ensemble à n éléments est un n-uplet où chaque élément de l'ensemble apparaît exactement une fois — autrement dit, une façon de ranger les n éléments dans un ordre. Le nombre de permutations d'un ensemble à n éléments est n!.

Démonstration. C'est le cas k=n de la propriété précédente : le nombre cherché vaut n(n1)(nn+1)=n(n1)2×1=n!.

Exemple

Podiums et photos de classe.

  • Une course oppose 8 athlètes. Un podium (or, argent, bronze) est un 3-uplet d'athlètes distincts : il y a 8×7×6=336 podiums possibles. L'ordre compte — être premier ou troisième n'est pas la même chose — et un athlète ne peut occuper deux marches.
  • Pour une photo, 5 amis s'alignent côte à côte. Chaque alignement est une permutation du groupe : il y a 5!=120 photos différentes possibles.

Remarque

La factorielle croît à une vitesse vertigineuse : 10!=3628800 et 20! dépasse déjà 2×1018, plus que le nombre de grains de sable de toutes les plages du monde. C'est bien pour cela que la combinatoire existe : énumérer est vite impossible, il faut calculer.

Combinaisons

Dernier modèle, le plus important pour la suite du programme : on choisit k éléments parmi n, sans répétition, mais cette fois sans tenir compte de l'ordre. Choisir 3 délégués dans une classe, c'est désigner un ensemble de 3 élèves : les nommer dans un ordre ou un autre ne change rien.

Définition

Combinaisons. Soit n un entier naturel et k un entier tel que 0kn. On appelle combinaison de k éléments d'un ensemble E à n éléments toute partie à k éléments de E. Le nombre de ces parties se note

(nk),

et se lit « k parmi n ». Ces nombres sont appelés coefficients binomiaux.

Propriété

Formules de calcul. Pour tous entiers 0kn :

(nk)=n(n1)(nk+1)k!=n!k!(nk)!.

Démonstration. Comptons de deux façons les k-uplets d'éléments distincts d'un ensemble à n éléments. D'une part, on sait qu'il y en a n(n1)(nk+1). D'autre part, on peut construire un tel k-uplet en deux temps : choisir d'abord la partie à k éléments qui le compose — (nk) possibilités — puis ranger ces k éléments dans un ordre — k! permutations possibles. Le principe multiplicatif donne alors

n(n1)(nk+1)=(nk)×k!,

d'où la première formule en divisant par k!. Pour la seconde, on prolonge le produit du numérateur : n(n1)(nk+1)=n!(nk)!, car les facteurs de nk à 1 se simplifient.

Le lien avec la section sur les 2n est direct : une partie à k éléments d'un ensemble à n éléments correspond à un mot de longueur n sur l'alphabet {0;1} comportant exactement k lettres 1. Ainsi (nk) compte aussi les mots binaires de longueur n ayant k fois la lettre 1 — il suffit de choisir les k positions des 1 parmi les n positions — ou encore, sur l'arbre binaire, les chemins comportant exactement k succès.

Exemple

Une main de cartes. On distribue 5 cartes d'un jeu de 32. Une main est un ensemble de cartes : ni ordre, ni répétition. Le nombre de mains est

(325)=32×31×30×29×285!=24165120120=201376.

Remarquons l'efficacité de la première formule : cinq facteurs au numérateur, 5! au dénominateur, pas besoin de calculer 32! (un nombre à 36 chiffres !).

Propriétés des coefficients binomiaux

Certaines valeurs des coefficients binomiaux se lisent directement sur leur signification combinatoire, sans aucun calcul.

Propriété

Valeurs particulières. Pour tout entier naturel n :

(n0)=1,(n1)=n,(n2)=n(n1)2,(nn)=1.

En effet : un ensemble à n éléments n'a qu'une seule partie à 0 élément (l'ensemble vide) et une seule partie à n éléments (lui-même) ; ses parties à 1 élément sont les n singletons ; et pour les paires, la formule donne (n2)=n(n1)2!=n(n1)2 — c'est le nombre de poignées de main échangées quand n personnes se saluent toutes deux à deux.

Propriété

Symétrie. Pour tous entiers 0kn :

(nk)=(nnk).

Démonstration. Par le calcul. La formule factorielle donne

(nnk)=n!(nk)!(n(nk))!=n!(nk)!k!=(nk),

car échanger les deux facteurs du dénominateur ne change pas le produit.

Par interprétation combinatoire. Choisir une partie à k éléments d'un ensemble à n éléments, c'est exactement choisir les nk éléments qu'on laisse de côté : à chaque partie à k éléments correspond son complémentaire, qui est une partie à nk éléments, et cette correspondance est parfaite (deux parties distinctes ont des complémentaires distincts, et toute partie à nk éléments est le complémentaire d'une partie à k éléments). Les deux familles ont donc le même cardinal.

La propriété suivante est le cœur du chapitre : elle relie chaque coefficient binomial aux deux coefficients « du cran précédent », et permet de les calculer tous de proche en proche.

Propriété

Relation de Pascal. Pour tous entiers 1kn1 :

(nk)=(n1k)+(n1k1).

Démonstration (exigible) — par le calcul. Réduisons la somme de droite au même dénominateur k!(nk)! :

(n1k)=(n1)!k!(n1k)!=(n1)!(nk)k!(nk)!,

en multipliant numérateur et dénominateur par nk, puisque (n1k)!×(nk)=(nk)!. De même,

(n1k1)=(n1)!(k1)!(nk)!=(n1)!kk!(nk)!,

en multipliant cette fois par k, puisque (k1)!×k=k!. En additionnant :

(n1k)+(n1k1)=(n1)!(nk)+(n1)!kk!(nk)!=(n1)!((nk)+k)k!(nk)!=(n1)!×nk!(nk)!=n!k!(nk)!=(nk).

Démonstration (exigible) — par une méthode combinatoire. Soit E un ensemble à n éléments, et fixons un élément a de E. Les parties à k éléments de E se répartissent en deux catégories disjointes, selon qu'elles contiennent a ou non.

  • Les parties qui contiennent a : pour en construire une, il reste à choisir les k1 autres éléments parmi les n1 éléments de E distincts de a. Il y en a donc (n1k1).
  • Les parties qui ne contiennent pas a : ce sont exactement les parties à k éléments de l'ensemble E{a}, qui possède n1 éléments. Il y en a (n1k).

Toute partie à k éléments de E appartient à une catégorie et une seule : le principe additif donne

(nk)=(n1k1)+(n1k).

La relation de Pascal fournit une machine à calculer tous les coefficients binomiaux : on les dispose en triangle, la ligne n contenant les nombres (n0),(n1),,(nn). Chaque ligne commence et finit par 1 (valeurs particulières), et chaque nombre intérieur est la somme des deux nombres situés au-dessus de lui — celui juste au-dessus et celui au-dessus à gauche : c'est exactement la relation de Pascal. Voici les lignes 0 à 6 du triangle de Pascal :

n\k 0 1 2 3 4 5 6
0 1
1 1 1
2 1 2 1
3 1 3 3 1
4 1 4 6 4 1
5 1 5 10 10 5 1
6 1 6 15 20 15 6 1

On y lit par exemple (52)=10 : c'est la somme de (42)=6 et (41)=4, les deux nombres au-dessus. On y observe aussi la symétrie de chaque ligne ((62)=(64)=15) — c'est la propriété de symétrie démontrée plus haut. Une dernière observation saute aux yeux : les sommes des lignes valent 1, 2, 4, 8, 16, 32, 64… les puissances de 2. Ce n'est pas une coïncidence.

Propriété

Somme d'une ligne du triangle. Pour tout entier naturel n :

k=0n(nk)=2n.

Démonstration (exigible) — par dénombrement. Comptons de deux façons les parties d'un ensemble E à n éléments. D'une part, nous avons démontré qu'il y en a 2n en tout. D'autre part, classons-les selon leur cardinal : pour chaque entier k compris entre 0 et n, notons Pk l'ensemble des parties de E ayant exactement k éléments. Toute partie de E a un cardinal bien défini, compris entre 0 et n : les ensembles P0,P1,,Pn sont donc deux à deux disjoints et leur réunion est l'ensemble de toutes les parties de E. Or Card(Pk)=(nk) par définition des coefficients binomiaux. Le principe additif donne alors

(n0)+(n1)++(nn)=2n.

Choisir le bon modèle

Toute la difficulté pratique du chapitre tient en une question : devant un énoncé concret, quel modèle appliquer ? Trois formules se disputent la place, et le choix se joue sur deux questions simples.

Méthode

Choisir le bon modèle de dénombrement. Avant tout calcul, poser les deux questions-réflexes :

  1. L'ordre a-t-il de l'importance ? (Échanger deux éléments donne-t-il un résultat différent ?)
  2. Les répétitions sont-elles possibles ? (Tirage avec ou sans remise ?)
Situation Modèle Nombre
Ordre compte, répétitions permises (avec remise) k-uplets nk
Ordre compte, éléments distincts (sans remise) k-uplets d'éléments distincts n(n1)(nk+1)
Ordre indifférent, éléments distincts combinaisons (nk)

En cas de doute, tester sur un exemple minuscule (n=3, k=2) et énumérer à la main : le bon modèle est celui qui retrouve le compte exact.

Exemple

Trois questions, trois modèles. Une urne contient 10 boules numérotées de 1 à 10.

  • On tire 3 boules successivement, en remettant chaque boule après tirage, et on note la suite des numéros. L'ordre compte, les répétitions sont possibles : 103=1000 tirages.
  • On tire 3 boules successivement sans remise, et on note la suite des numéros. L'ordre compte, pas de répétition : 10×9×8=720 tirages.
  • On tire 3 boules simultanément, d'une seule poignée. Ni ordre, ni répétition : (103)=10×9×83!=120 tirages.

Même urne, trois protocoles, trois réponses : c'est le protocole de tirage qui dicte le modèle, pas les objets tirés.

Un algorithme : construire une ligne du triangle de Pascal

La relation de Pascal est une définition de proche en proche : elle se traduit naturellement en un algorithme. Le programme suivant calcule la ligne n du triangle en construisant chaque ligne à partir de la précédente : les extrémités valent 1, et chaque terme intérieur est la somme de deux termes de la ligne du dessus.

def ligne_pascal(n):
    ligne = [1]                      # ligne 0 du triangle
    for i in range(1, n + 1):        # on construit les lignes 1, 2, ..., n
        nouvelle = [1]               # chaque ligne commence par 1
        for k in range(1, i):
            # relation de Pascal : C(i, k) = C(i-1, k-1) + C(i-1, k)
            nouvelle.append(ligne[k - 1] + ligne[k])
        nouvelle.append(1)           # chaque ligne se termine par 1
        ligne = nouvelle
    return ligne

print(ligne_pascal(6))   # affiche [1, 6, 15, 20, 15, 6, 1]

L'appel ligne_pascal(6) renvoie bien la ligne 6 lue dans le tableau plus haut. Cet algorithme n'utilise que des additions d'entiers : aucune factorielle géante n'est calculée, ce qui le rend rapide et exact même pour de grandes valeurs de n — on peut vérifier que sum(ligne_pascal(20)) vaut 220=1048576, conformément à la dernière propriété.

En résumé : ce chapitre a bâti, à partir de deux principes évidents — on additionne les paquets disjoints, on multiplie les choix successifs — toute une arithmétique du comptage. Les k-uplets (nk) modélisent les tirages avec remise, les k-uplets d'éléments distincts (n(n1)(nk+1)) les tirages sans remise où l'ordre compte, et les combinaisons (nk) les choix où seul le groupe importe ; le nombre 2n compte à la fois les parties d'un ensemble, les mots binaires et les chemins d'un arbre, et le triangle de Pascal organise tous les coefficients binomiaux autour d'une unique relation. Ces outils sont exactement ceux qu'attendait le calcul des probabilités depuis Pascal et Fermat : plus loin dans l'année, les coefficients binomiaux compteront les chemins d'un arbre de Bernoulli menant à k succès en n épreuves — et le dénombrement de ce chapitre deviendra la clé de la loi binomiale.

Bloqué sur « Combinatoire et dénombrement » ?

On peut le travailler ensemble dès cette semaine. La première heure est offerte — on fait le point honnêtement, et vous repartez au minimum avec une méthode.