ChatGPT et le dénombrement

Distribuer des bouteilles de vin à des employés

ChatGPT face à un problème de dénombrement : distribuer 40 bouteilles de vin parmi 20 employés. De la confusion totale en 2024 à une solution impeccable en 2025, retour sur une progression fulgurante.
Auteur

Jérôme Soucy

Date de publication

1 février 2026

Introduction

Je profite de ce dimanche pour donner suite à un article précédent, où j’analysais l’évolution des réponses de ChatGPT à un problème de probabilités tiré d’un examen du cours STT-1500 : Probabilités. L’exercice avait mis en lumière une progression lente mais tangible du raisonnement probabiliste, avec un premier succès complet seulement en 2026.

Cette fois, c’est un problème de dénombrement qui passe au banc d’essai. Et surprise : la trajectoire est bien différente. Là où le problème du Tricheur a nécessité quatre générations de modèles avant d’obtenir une réponse correcte en 2026, celui des bouteilles de vin est résolu dès 2025. Comme quoi, tous les problèmes ne sont pas égaux devant l’intelligence artificielle. Je n’ai pas gardé de trace de mes interactions avec ChatGPT en 2023, mais je me souviens qu’il avait lamentablement échoué à résoudre ce problème.

timeline
    title Modèles évalués
    2024 : GPT-4 (early)
         : Réponse incorrecte
    2025 : GPT-4 (late)
         : Réponse correcte
    2026 : GPT-o
         : Réponse correcte et critique GPT-4 (late)

Évolution des modèles ChatGPT testés (2024–2026)

Le problème

Voici le contexte : une entreprise organise un party de Noël. Il y a 40 bouteilles de vin à distribuer parmi 20 employés. Chaque bouteille est identique et chaque employé peut en recevoir zéro, une, deux ou même trente-neuf. La seule contrainte? Personne ne repart avec les 40 bouteilles à lui seul.

NoteQuestion

De combien de façons peut-on distribuer 40 bouteilles de vin identiques parmi 20 employés de telle sorte qu’aucun employé ne reçoive toutes les bouteilles?

Observation. Ce problème relève du dénombrement classique : distribuer des objets indiscernables dans des boîtes discernables, avec une contrainte d’exclusion.

NoteRéponse de l’enseignant

Sans aucune restriction, le nombre de façons de distribuer 40 objets indiscernables (les bouteilles) dans 20 boîtes discernables (les employés) est donné par la formule des boules et urnes (ou stars and bars) :

\[ \binom{40 + 20 - 1}{20 - 1} = \binom{59}{19} = 1\,397\,281\,501\,935\,165 \]

Par exemple, s’il y avait 5 bouteilles et 4 employés, nous pourrions représenter la situation par la chaîne de symboles **||*|** pour indiquer que l’employé 1 (à gauche) a reçu 2 bouteilles, l’employé 2 aucune, l’employé 3 une bouteille et l’employé 4 deux bouteilles. Le nombre de manières de procéder à la distribution est donc équivalent à placer les 4 - 1 = 3 séparateurs parmi les 3 + 5 = 8 symboles, ce qui correspond à \(\binom{8}{3}=56\) façons.

Or dans notre problème, on doit exclure les situations où une personne reçoit toutes les bouteilles. Il y a autant de telles situations qu’il y a de personnes susceptibles de recevoir une bouteille, soit 20.

Le nombre cherché est donc

\[ \binom{59}{19} - 20 = 1\,397\,281\,501\,935\,145. \]

Comme les calculatrices autorisées ne permettent pas d’afficher les nombres entiers à 16 chiffres, votre réponse devrait être \(\binom{59}{19} - 20\).

Évolution des réponses de ChatGPT

Le truc. La contrainte « aucun employé ne reçoit les 40 bouteilles » exclut exactement 20 cas (un par employé). C’est un cas où la contrainte a l’air compliquée, mais se traduit par une soustraction toute simple.

NoteRéponse de GPT-4 (early) (2024)

Si chaque employé peut recevoir au plus une bouteille de vin, alors le problème revient à distribuer 40 bouteilles parmi 20 employés de telle manière qu’aucun employé ne reçoive les 40 bouteilles.

Ceci est un problème de dénombrement classique utilisant le principe des coefficients multinomiaux.

La formule pour distribuer \(n\) objets distincts parmi \(k\) boîtes de telle sorte qu’aucune boîte ne soit vide est donnée par le coefficient multinomial :

\[ \text{CoefMultinomial}(n, k, k, \ldots, k) = \frac{(n+k-1)!}{n!(k-1)!} \]

Dans ce cas, distribuer 40 bouteilles de vin parmi 20 employés sans qu’aucun n’en reçoive les 40 revient à appliquer cette formule :

\[ \text{CoefMultinomial}(40, 20, 20, \ldots, 20) = \frac{(40+20-1)!}{40!(20-1)!} \]

Calculons ce coefficient multinomial :

\[ \text{CoefMultinomial}(40, 20, 20, \ldots, 20) = \frac{59!}{40! \times 19!} \approx 1{,}939 \times 10^{14} \]

Donc, il y a environ \(1{,}939 \times 10^{14}\) façons de distribuer les 40 bouteilles parmi les 20 employés de telle sorte que personne ne reçoive les 40 bouteilles.

Diagnostic 2024. Interprétation erronée de la contrainte, terminologie inventée et erreur de calcul.

Analyse. Cette réponse cumule plusieurs problèmes. D’abord, GPT-4 (early) reformule la contrainte « aucun employé ne reçoit les 40 bouteilles » en « chaque employé peut recevoir au plus une bouteille », ce qui est une toute autre contrainte. Ensuite, le modèle invoque un « coefficient multinomial ».

On peut définir le coefficient multinomial comme étant \(\binom{n}{k_1,\ldots,k_m}\), qui désigne le nombre de façons de répartir un ensemble de \(n\) éléments distincts en \(m\) groupes distincts, de tailles respectives \(k_1,\ldots,k_m\), où les entiers \(k_1,\ldots,k_m\) sont non négatifs et vérifient \(k_1+\cdots+k_m=n\). Il est donné par la formule \[ \binom{n}{k_1,\ldots,k_m} = \frac{n!}{k_1!\cdots k_m!}. \]

Si l’on adopte cette définition du coefficient multinomial, il devient plausible de comprendre comment un modèle comme ChatGPT, dans ses versions de 2024, a pu vouloir s’en servir. Le terme \(\binom{n}{k,k,\ldots,k}\) correspond à un schéma combinatoire très standard : la partition d’un ensemble de \(n\) objets distincts en groupes distincts de taille égale. Ce type de configuration apparaît fréquemment dans les manuels, les exercices classiques et les exemples de probabilités multinomiales. Une fois ce patron reconnu — en particulier la contrainte implicite \(n = m k\) — la résolution ne repose plus sur un raisonnement conceptuel délicat, mais sur l’activation d’une formule bien identifiée. Les modèles de langage, entraînés sur une grande quantité de textes mathématiques où ces structures récurrentes sont explicitées, sont particulièrement performants lorsqu’il s’agit de reconnaître ce genre de scénarios et d’en dérouler la conséquence formelle, même si la justification combinatoire sous-jacente reste parfois implicite ou incomplètement motivée.

Enfin, la valeur numérique obtenue (\(\approx 1{,}939 \times 10^{14}\)) ne correspond pas à \(\binom{59}{19} \approx 1{,}397 \times 10^{15}\) : le modèle se trompe même dans le calcul de sa propre formule.

En résumé : mauvaise interprétation, mauvaise terminologie, mauvais calcul. On se reprendra.

NoteRéponse de GPT-4 (late) (2025)

Étape 1 : Formulation du problème

Il s’agit de distribuer 40 bouteilles de vin entre 20 employés, où chaque employé peut recevoir un nombre \(x_i\) de bouteilles tel que \(0 \leq x_i \leq 40\) et \(\sum_{i=1}^{20} x_i = 40\). La seule restriction est qu’aucun employé ne peut recevoir toutes les bouteilles (\(x_i \neq 40\)).

Si nous ne tenons pas compte de cette restriction (\(x_i\) quelconque entre 0 et 40), cela revient à un problème classique de partitions avec répétitions.

Étape 2 : Distribution sans restriction (\(x_i \geq 0\))

Le nombre de façons de répartir 40 bouteilles entre 20 employés est donné par le nombre de solutions entières non négatives de l’équation :

\[ x_1 + x_2 + \cdots + x_{20} = 40 \]

En combinatoire, ce problème se résout par la formule du principe des boules et urnes :

\[ \binom{40 + 20 - 1}{20 - 1} = \binom{59}{19} \]

Étape 4 : Calcul final

Calculons \(\binom{59}{19}\) et soustrayons 20.

Le nombre total de façons de distribuer les 40 bouteilles parmi les 20 employés, en respectant la condition qu’aucun employé ne reçoive les 40 bouteilles, est 1 397 281 501 935 145.

Diagnostic 2025. Formulation rigoureuse, identification correcte de la contrainte et calcul exact.

Analyse. Un an plus tard, le contraste est saisissant. GPT-4 (late) formule le problème correctement dès le départ : il identifie les variables \(x_i\), la contrainte de somme et la restriction \(x_i \neq 40\). La méthode des boules et urnes est correctement nommée et appliquée. Le modèle soustrait ensuite les 20 cas interdits pour obtenir la bonne réponse : \[\binom{59}{19} - 20 = 1\,397\,281\,501\,935\,145.\]

C’est propre, structuré et exact. On est loin du « coefficient multinomial » de 2024.

NoteRéponse de GPT-o (2026)

On cherche le nombre de façons de distribuer 40 bouteilles identiques entre 20 employés distincts.
Si \(x_i\) désigne le nombre de bouteilles reçues par l’employé \(i\), on considère les solutions entières de

\[ x_1 + x_2 + \cdots + x_{20} = 40, \qquad x_i \ge 0, \]

avec la contrainte qu’aucun employé ne reçoit toutes les bouteilles, c’est-à-dire \(x_i \neq 40\) pour tout \(i\).

Étape 1 — Distribution sans contrainte

Sans la contrainte \(x_i \neq 40\), le nombre de solutions entières non négatives de l’équation est donné par le principe des étoiles et des barres :

\[ \binom{40 + 20 - 1}{20 - 1} = \binom{59}{19}. \]

Étape 2 — Exclusion des distributions interdites

Pour chaque \(i \in \{1,\dots,20\}\), considérons l’ensemble des distributions pour lesquelles \(x_i = 40\).
Dans ce cas, on a nécessairement \(x_j = 0\) pour tout \(j \neq i\), ce qui donne exactement une distribution par employé.

Ces distributions sont toutes distinctes et il est impossible que deux employés reçoivent simultanément les 40 bouteilles.
Il y a donc exactement \(20\) distributions interdites.

Conclusion

Le nombre de distributions admissibles est donc

\[ \binom{59}{19} - 20. \]

Analyse. Tout simplement impeccable. Son analyse de l’étape 2 m’amène à penser qui aurait été prêt à recevoir une contrainte beaucoup plus complexe que celle précisant qu’on doit éviter de donner toutes les bouteilles au même employé.

Un correcteur sévère

J’ai volontairement soumis à la version la plus récente de ChatGPT une réponse correcte formulée en 2025, en lui demandant ce qui y était erroné, afin d’examiner sa manière de gérer une prise de position contradictoire.

NoteRéponse de GPT-o (2026) à une critique erronée de la solution de 2025

Analyse de la solution proposée

La solution commence correctement en considérant les distributions sans contrainte.
On cherche les solutions entières non négatives de l’équation \[ x_1 + \cdots + x_{20} = 40, \qquad x_i \ge 0, \] dont le nombre est donné par la formule des étoiles et des barres : \[ \binom{40 + 20 - 1}{20 - 1} = \binom{59}{19}. \] À ce stade, il n’y a aucune erreur.

Le problème apparaît lors de l’introduction de la contrainte voulant qu’aucun employé ne reçoive toutes les 40 bouteilles, soit \[ x_i \neq 40 \quad \text{pour tout } i. \] La solution affirme alors qu’il suffit de soustraire 20 au nombre précédent.

Cette soustraction n’est toutefois pas justifiée. La solution n’explique pas :

  • que les seules distributions interdites sont celles pour lesquelles \(x_i = 40\) pour un certain \(i\),
  • que ces distributions sont exactement au nombre de 20,
  • que ces cas sont disjoints,
  • et qu’aucune distribution admissible n’est retranchée par erreur.

Autrement dit, la solution applique implicitement un raisonnement de type inclusion-exclusion sans le formuler ni le démontrer.

Conclusion

Le défaut de la solution n’est ni un problème de calcul ni un problème de formule.
Il s’agit d’un raisonnement mathématique incomplet : la soustraction de 20 est effectuée de manière ad hoc, sans justification rigoureuse.
Même si le résultat numérique final est correct, l’argumentation ne permet pas d’en établir la validité mathématique.

Bref, si je corrigeais mes examens avec la même sévérité que GPT-o (2026), ma boîte courriel exploserait et ma réputation d’enseignant intransigeant ne tarderait pas à se forger. Dans ma propre solution, j’avais affirmé ceci : « Or dans notre problème, on doit exclure les situations où une personne reçoit toutes les bouteilles. Il y a autant de telles situations qu’il y a de personnes susceptibles de recevoir une bouteille, soit 20. » ChatGPT considère que cette affirmation n’est pas suffisante.

Conclusion

Ce problème des bouteilles de vin offre un cas de figure intéressant à comparer au problème du Tricheur. Là où le Tricheur avait résisté jusqu’en 2026, le problème de distribution des bouteilles de vin est parvenu à la solution exacte dès 2025. Bien sûr, la version 2026 a raffiné la solution, en pointant une étape du raisonnement, qui, à son avis, méritait plus de détails.

Qu’est-ce qui explique pourquoi cela a pris une année de plus à ChatGPT pour résoudre le problème du Tricheur ? Probablement la nature du piège. Le problème du Tricheur exige un changement de point de vue — reconnaître que « au moins une fois » équivaut à « exactement une fois » quand \(n = k\). Le problème des bouteilles, lui, relève d’un scénario classique : une fois le cadre des boules et urnes identifié, la résolution consiste à dérouler une procédure connue, ce à quoi les modèles de langage excellent. Les pièges conceptuels, eux, continuent de constituer leur principal angle mort.