Cet article s’inspire d’une séquence de la série Squid Game, série dystopique et dramatique dont la saison 2 vient de sortir.
Il retrouve les résultats déjà publiés sur internet par Jérôme Cottanceau, alias El Jj (https://youtu.be/a4E2CeWEprw) et sur le site hitek.fr en se basant sur des simulations réalisées avec Python et en examinant les éléments théoriques qui s’y rattachent.
Squid Game a fait une entrée tonitruante dans le petit monde des addicts aux séries, en devenant la première série sud-coréenne à occuper la première place d’une célèbre plateforme de streaming. Nous étions en 2021, et le succès mondial de la série a incité les producteurs à proposer une suite, sortie en décembre 2024 et une dernière partie attendue pour juin 2025.
Le principe de la série est simple : 456 personnes, qui ont toutes des difficultés financières dans la vie, sont invitées à prendre part à une mystérieuse compétition de survie. Participant à une série de jeux traditionnels pour enfants, mais avec des issues mortelles, elles risquent leur vie pour gagner le prix de 45,6 milliards de wons (soit environ 38 millions de dollars américains ou 32 millions d’euros). Ils doivent pour ce faire remporter 6 épreuves.
Squid Game étant réservé aux plus de 16 ans, les programmes fournis ci-dessous ont été rédigés avec Python ce qui est assez cohérent avec les éléments théoriques en jeu, proches de la loi binomiale et donc conseillés dans les programmes aux plus de 16 ans également.
Avant de partir à la découverte du fameux jeu du pont à panneaux en verre, je te propose 6 petites épreuves pour te mettre en jambes. Si tu survis à chacune d’entre elles, tu pourras espérer aller plus loin !
Le jeu du pont avec les panneaux en verre : le principe
Les joueurs doivent traverser un long pont composé de paires de panneaux en verre constituants deux routes parallèles, celle de gauche et celle de droite. L’un des panneaux est en verre trempé résistant et l’autre en verre ordinaire, ce dernier ne pouvant supporter un poids humain et entrainant une chute mortelle du pont. Le jeu commence avec 16 joueurs et un nombre déterminé de panneaux en verre à franchir (18 dans la série). Les joueurs partent dans l’ordre de leur dossard de 1 à 16.
Un joueur a donc une probabilité de succès égale à $\frac{1}{2}$ à chaque étape du jeu puisqu’un panneau sur les deux possibles est solide. L’autre non.
Si un joueur a de la chance, il réussit à passer la trappe et continue dans le jeu.
Si le joueur échoue, il est éliminé et ne pourra plus continuer.
Chaque fois qu’un panneau est utilisé (qu’un joueur réussit ou échoue), on connait définitivement sa nature (pour peu que l’on soit attentif au passage des joueurs précédents). Le nombre de panneaux dont la nature reste douteuse diminue alors de 1.
Chaque joueur commence au premier panneau. Il peut profiter des succès ou des échecs de ses prédécesseurs pour tracer sa route.
Un joueur peut réussir ou échouer à chaque nouveau panneau inconnu, de manière indépendante des autres joueurs.
Voici une vidéo en version originale, sous-titrée en anglais pour revoir toute la séquence du jeu de l’épisode 7 et pour bien comprendre la situation pour ceux qui n’ont pas vu la série.
Simuler une partie avec Python
On peut facilement simuler une partie en utilisant un algorithme (et ainsi sans joueur humain).
On utilise dans Python random.randint(0,1) qui simule un tirage aléatoire entre le panneau de gauche et le panneau de droite avec une probabilité de succès égale à $\frac{1}{2}$.
- On fait partir le dossard 1.
- Tant qu’il reste des trappes à découvrir pour passer de l’autre côté du pont :
a) Si il reste des joueurs vivants :
– on tire au sort le choix du panneau effectué par le joueur en course pour le prochaine panneau à dévoiler ;
– s’il échoue à trouver le bon panneau, on annonce sa chute, on passe au dossard suivant, on diminue le nombre de trappes à découvrir de 1 ;
– s’il réussit, il poursuit sa route, on annonce son succès sur ce panneau et on diminue le nombre de trappes à découvrir de 1.
b) Si il ne reste plus de joueurs vivants, on annonce la défaite du groupe. - S’il n’y a plus de trappes à découvrir, on annonce la victoire du joueur qui a réussi en premier et le nombre de survivants.
- import random
- def squidgame(joueurs,trappes):
- a = 1
- while trappes != 0 :
- pb_de_succes = random.randint(0, 1)
- if a == joueurs + 1 :
- return print("le jeu est perdu")
- else:
- if pb_de_succes == 0 :
- print("le joueur numéro ",a," est tombé")
- a += 1
- trappes -= 1
- else :
- print("le joueur numéro ",a," a survécu")
- trappes -= 1
- print("il reste ", trappes, "trappes")
- print("Le jeu est remporté par le numéro ",a)
- return print("Il reste ", joueurs -a + 1, " joueurs survivants")
Voici les éléments renvoyés dans la console Python lors d’une partie à 16 joueurs pour 18 panneaux à franchir :
Essai 1
le joueur numéro 1 est tombé
il reste 17 trappes
le joueur numéro 2 est tombé
il reste 16 trappes
le joueur numéro 3 a survécu
il reste 15 trappes
le joueur numéro 3 est tombé
il reste 14 trappes
le joueur numéro 4 a survécu
il reste 13 trappes
le joueur numéro 4 a survécu
il reste 12 trappes
le joueur numéro 4 est tombé
il reste 11 trappes
le joueur numéro 5 a survécu
il reste 10 trappes
le joueur numéro 5 a survécu
il reste 9 trappes
le joueur numéro 5 a survécu
il reste 8 trappes
le joueur numéro 5 est tombé
il reste 7 trappes
le joueur numéro 6 est tombé
il reste 6 trappes
le joueur numéro 7 a survécu
il reste 5 trappes
le joueur numéro 7 est tombé
il reste 4 trappes
le joueur numéro 8 est tombé
il reste 3 trappes
le joueur numéro 9 a survécu
il reste 2 trappes
le joueur numéro 9 a survécu
il reste 1 trappes
le joueur numéro 9 a survécu
il reste 0 trappes
Le jeu est remporté par le numéro 9
Il reste 8 joueurs survivants
On voit que le joueur 9 et les suivants seront vainqueurs. Il restera 8 survivants.
Essai 2
Et d’une autre partie :
le joueur numéro 1 est tombé
il reste 17 trappes
le joueur numéro 2 a survécu
il reste 16 trappes
le joueur numéro 2 est tombé
il reste 15 trappes
le joueur numéro 3 a survécu
il reste 14 trappes
le joueur numéro 3 a survécu
il reste 13 trappes
le joueur numéro 3 a survécu
il reste 12 trappes
le joueur numéro 3 a survécu
il reste 11 trappes
le joueur numéro 3 est tombé
il reste 10 trappes
le joueur numéro 4 a survécu
il reste 9 trappes
le joueur numéro 4 a survécu
il reste 8 trappes
le joueur numéro 4 est tombé
il reste 7 trappes
le joueur numéro 5 a survécu
il reste 6 trappes
le joueur numéro 5 est tombé
il reste 5 trappes
le joueur numéro 6 est tombé
il reste 4 trappes
le joueur numéro 7 a survécu
il reste 3 trappes
le joueur numéro 7 est tombé
il reste 2 trappes
le joueur numéro 8 a survécu
il reste 1 trappes
le joueur numéro 8 a survécu
il reste 0 trappes
Le jeu est remporté par le numéro 8
Il reste 9 joueurs survivants
On voit donc que le jeu n’est pas si difficile qu’il pourrait y paraître au premier abord et qu’il y a régulièrement un bon nombre de survivants. Du moins si tout le monde joue de manière rationnelle et est attentif au parcours des prédécesseurs. Et si on admet que le facteur temps, non simulé dans le programme Python, tout comme les relations conflictuelles entre certains personnages ne jouent pas un grand rôle.
Le point de vue des organisateurs du jeu : estimer le nombre de survivants
Le jeu du pont est le 5ème et avant-dernier jeu de la partie. Il doit donc fournir les finalistes qui ne doivent pas être trop nombreux. Idéalement, ils doivent être en nombre pair pour faire des équipes pour jouer au jeu du calamar (squid game). Il peut être intéressant pour les organisateurs d’avoir une technique pour estimer le nombre de gagnants et éventuellement ajuster certains paramètres comme le nombre de plateformes.
Dans un premier temps, on peut penser à réaliser un large échantillon de parties simulées à l’aide du programme précédent et à conserver à chaque fois le nombre de survivants. Il est alors aisé de calculer le nombre moyen de survivants dans l’échantillon. Et bien sûr plus l’échantillon est large et plus la moyenne sera significative. C’est un procédé classique appelé "loi des grands nombres". Elle permet d’interpréter la probabilité comme une fréquence de réalisation, justifiant ainsi le principe des sondages, et présentant l’espérance comme une moyenne. Plus formellement, elle signifie que la moyenne empirique, calculée sur les valeurs d’un échantillon, converge vers l’espérance lorsque la taille de l’échantillon tend vers l’infini (autrement dit est "suffisamment grand").
On peut faire des retouches au programme pour supprimer les informations relatives aux succès et aux échecs des concurrents lors des parties. Ces données sont inutiles. La seule donnée à exploiter est alors le nombre de survivants que l’on trouve après return dans la fonction squidgame.
La fonction main stocke le nombre de survivants de toutes les parties de l’échantillon dans une liste l que l’on remplit avec la commande l.append...
La fonction moyenne calcule la moyenne empirique après avoir appelé la fonction main qui appelle elle-même la fonction squidgame. Ce programme Python est assez facile à réaliser, y compris pour des élèves.
- import random
- def squidgame(joueurs,trappes):
- a = 1
- while trappes != 0 :
- pb_de_succes = random.randint(0, 1)
- if a != joueurs + 1 :
- if pb_de_succes == 0 :
- a += 1
- trappes -= 1
- else :
- trappes -= 1
- else :
- return 0
- survivants = joueurs - a + 1
- return survivants
- def main(nb):
- l = []
- for i in range(nb):
- survivants = squidgame(16,18)
- l.append(survivants)
- return l
- def moyenne(n):
- a = main(n)
- somme=0
- for i in range(n):
- somme += a[i]
- moyenne= somme/n
- print(a,moyenne)
On peut tester le programme avec un échantillon de 10 millions de parties. On trouve alors une moyenne voisine de 7, à savoir exactement 7.0016231 en ce qui me concerne. En moyenne, il y aurait donc environ 7 survivants à ce jeu.
Mais une question demeure : existe-t-il des parties sans aucun survivant ? Beaucoup de parties ?
Aussi, on peut envisager d’utiliser la conservation du nombre de survivants de chaque partie pour calculer les fréquences empiriques pour 0 survivant, 1 survivant etc.
Nous proposons deux adaptations du programme :
- Une première avec une double boucle imbriquée, simple à programmer, mais induisant beaucoup d’opérations. Complexité en O(n).
- Une seconde avec une complexité en O(nlog(n)) du fait de la fonction de tri. Cette complexité plus élevée permet néanmoins un gain marginal de temps de calcul car la fonction de tri est optimisée dans Python. Après avoir trié la liste, le comptage des fréquences est optimisé dans un seul passage grâce à une logique de comptage en groupe. Si deux éléments sont égaux, ils appartiennent au même groupe de survivants, donc nous augmentons le compteur pour ce groupe. Dès que nous rencontrons un nouvel élément dans la liste triée, nous enregistrons la fréquence du précédent et réinitialisons le compteur pour le nouvel élément. Les informations de sortie y sont également plus explicites.
Ce second algorithme est alors environ 2 minutes plus rapide sur ma machine pour une simulation de 100 millions de parties avec un temps de calcul d’environ 1h 07 minutes. Il a été fourni par ChatGPT qui arrive très bien à "optimiser" un algorithme déjà réalisé.
Première version
- import random
- def squidgame(joueurs,trappes):
- a = 1
- while trappes != 0 :
- pb_de_succes = random.randint(0, 1)
- if a != joueurs + 1 :
- if pb_de_succes == 0 :
- a += 1
- trappes -= 1
- else :
- trappes -= 1
- else :
- return 0
- survivants = joueurs - a + 1
- return survivants
- def main(nb):
- l = []
- for i in range(nb):
- survivants = squidgame(16,18)
- l.append(survivants)
- return l
- def moyenne(n):
- a = main(n)
- compteur=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- fréquence=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- somme=0
- for i in range(n):
- somme += a[i]
- for j in range(n):
- for k in range(17):
- if a[j] == k :
- compteur[k] += 1
- moyenne= somme/n
- for k in range(17):
- fréquence[k]= compteur[k]/n
- print(k,fréquence[k])
- print(moyenne)
Seconde version
- import random
- # Fonction qui simule le Squid Game pour un certain nombre de joueurs et trappes
- def squidgame(joueurs, trappes):
- a = 1 # Le premier joueur
- while trappes > 0:
- pb_de_succes = random.randint(0, 1) # Succès ou échec aléatoire
- if a <= joueurs: # Si le joueur est encore en jeu
- if pb_de_succes == 0:
- a += 1 # Le joueur passe à la prochaine étape
- trappes -= 1 # Une trappe de moins
- else:
- trappes -= 1 # Une trappe de moins, le joueur est éliminé
- else:
- return 0 # Si on a atteint le nombre de joueurs
- survivants = joueurs - a + 1 # Calcul des survivants
- return survivants
- # Fonction principale pour effectuer n simulations
- def main(nb):
- l = []
- for i in range(nb):
- survivants = squidgame(16, 18) # Par exemple, 16 joueurs et 18 trappes
- l.append(survivants)
- return l
- # Fonction pour calculer la moyenne et les fréquences des survivants
- def moyenne(n):
- a = main(n) # Effectuer n simulations
- a.sort() # Trier la liste des survivants
- # Calcul de la somme (moyenne) et des fréquences en un seul passage
- compteur = [0] * 17 # Compter les occurrences de survivants (de 0 à 16)
- somme = 0
- current_value = a[0]
- count = 0
- for i in range(n):
- somme += a[i]
- if a[i] == current_value:
- count += 1
- else:
- compteur[current_value] = count
- current_value = a[i]
- count = 1
- compteur[current_value] = count # Ne pas oublier de mettre à jour le dernier groupe
- # Calcul de la moyenne
- moyenne = somme / n
- # Affichage des fréquences et de la moyenne
- for k in range(17):
- fréquence = compteur[k] / n # Calcul de la fréquence de chaque nombre de survivants
- print(f"Survivants = {k}, Fréquence = {fréquence:.6f}")
- print(f"Moyenne des survivants = {moyenne:.6f}")
En quelques minutes seulement, pour 10 millions de parties simulées, on obtient l’affichage suivant dans la console Python après avoir appelé la fonction moyenne(10000000) :
Survivants = 0, Fréquence = 0.000659
Survivants = 1, Fréquence = 0.003093
Survivants = 2, Fréquence = 0.011720
Survivants = 3, Fréquence = 0.032722
Survivants = 4, Fréquence = 0.070902
Survivants = 5, Fréquence = 0.121411
Survivants = 6, Fréquence = 0.166836
Survivants = 7, Fréquence = 0.185401
Survivants = 8, Fréquence = 0.166929
Survivants = 9, Fréquence = 0.121254
Survivants = 10, Fréquence = 0.070971
Survivants = 11, Fréquence = 0.032707
Survivants = 12, Fréquence = 0.011663
Survivants = 13, Fréquence = 0.003080
Survivants = 14, Fréquence = 0.000582
Survivants = 15, Fréquence = 0.000068
Survivants = 16, Fréquence = 0.000003
Moyenne des survivants = 6.999597
On constate que le plus fréquent est que la partie s’achève avec 7 survivants et c’est aussi pratiquement le nombre moyen de survivants.
Mais ce seul échantillon ne saurait suffire, il faut retenter l’expérience pour se convaincre que l’échantillon précédent n’était pas une "aberration" de calcul. On peut même étendre l’échantillon à 100 000 000 de parties, voire même à 1 milliard de parties sans mettre trop en difficulté le processeur de l’ordinateur.
Pour 100 millions de parties, on obtient environ une heure plus tard :
Survivants = 7, Fréquence = 0.185511
Moyenne des survivants = 6.999739
Ce qui donne encore plus de crédit aux hypothèses précédentes.
Le point de vue du joueur : estimer mes chances de survie
Pour le joueur au dossard 1, les choses sont extrêmement simples. Il doit enchaîner 18 tirages aléatoires indépendants les uns des autres dont chacun a une probabilité de succès égale à $\frac{1}{2}$. Sa probabilité de réussite pour passer de l’autre côté du pont est donc égale à $(\frac{1}{2})^{18}$, autrement dit il a une chance sur 262 144 de s’en sortir vivant. C’est très peu.
Si l’on note X le nombre de panneaux franchis par un joueur, il s’agit en fait de calculer P(X = 18) où X suit la loi binomiale B(18 ;$\frac{1}{2}$).
Pour le joueur 2, la connaissance du parcours du joueur 1 est indiscutablement avantageuse. Dans l’hypothèse où le joueur 1 n’a pas réussi à traverser entièrement le pont, il a néanmoins apporté au moins une information (échec au panneau 1) et cela donc permet au moins au joueur 2 de trouver un bon panneau à coup sûr....Peut-être même davantage si le joueur a réussi à trouver plusieurs panneaux corrects avant de tomber. Il reste alors au maximum 17 panneaux douteux.
Il faut alors tenir des différentes possibilités :
- Si le joueur 2 commence à devoir choisir alors qu’il est situé sur le panneau 1, il lui reste 17 panneaux à franchir. La probabilité de le faire est alors : $(\frac{1}{2})^{17}$.
- Si le joueur 2 commence à devoir choisir alors qu’il est situé sur le panneau 2, il lui reste 16 panneaux à franchir. La probabilité de le faire est alors : $(\frac{1}{2})^{16}$.
- Et ainsi suite...
Dans un ressort scénaristique, le joueur #062, qui porte le dossard 3 lors de cette épreuve et qui est professeur de mathématiques, révèle ainsi sa probabilité de succès alors qu’il lui reste 15 panneaux à découvrir. Sa probabilité de le faire est alors : $(\frac{1}{2})^{15}$, soit une chance sur 32 768. Ce qu’il calcule parfaitement malgré la pression avant d’affirmer que c’est très peu et de mourir, en ayant quand même réussi à dévoiler 4 panneaux corrects. Pauvre professeur de mathématiques !
La probabilité du succès du joueur au dossard 2, et des autres, au moment où leur tour survient, est donc fortement influencée par la mémoire du jeu (en supposant que les joueurs aient bien gardé en mémoire la trajectoire idéale.)
De ce fait, pour comparer les probabilités de survie de chaque concurrent, il vaut mieux les calculer au moment de l’attribution des dossards. Dans la série, elle se fait "à l’aveugle", sans que les candidats ne sachent à quel jeu ils vont jouer et donc sans savoir que c’est un critère déterminant dans ce jeu qui n’est pas du tout équitable.
Ainsi pour le joueur au dossard 2, il faut examiner les 19 "trajectoires" qui lui permettraient de gagner le jeu. Cela revient à utiliser la formule des probabilités totales.
D’abord, il peut gagner alors que le joueur 1 est tombé au panneau 1. Mais aussi alors que le joueur 1 est tombé au panneau 2 . Ou au panneau 3. Etc. Ou au panneau 18. Ceci jusqu’au cas extrême (très peu probable) où le joueur 1 a remporté le jeu en trouvant 18 panneaux justes.
Notons P la probabilité P("le joueur 2 gagne et le joueur 1 est tombé au premier panneau").
P = P("le joueur 2 gagne"|"le joueur 1 est tombé au panneau 1") $\times$ P("le joueur 1 est tombé au panneau 1")
P = $(\frac{1}{2})^{17}$ $\times$ $\frac{1}{2}$ puisque une fois sur le panneau 1, il lui reste 17 panneaux à déterminer et que le joueur 1 a une chance sur 2 de tomber au premier panneau.
Ainsi : P("le joueur 2 gagne et le joueur 1 est tombé au premier panneau") = $(\frac{1}{2})^{18}$.
De même :
Notant P’ la probabilité P("le joueur 2 gagne et le joueur 1 est tombé au deuxième panneau").
P’ = P("le joueur 2 gagne"|"le joueur 1 est tombé au panneau 2") $\times$ P("le joueur 1 est tombé au panneau 2")
P’ = $(\frac{1}{2})^{16}$ $\times$ $\frac{1}{2}$ $\times$ $\frac{1}{2}$ puisque une fois sur le panneau 2, il lui reste 16 panneaux à déterminer et que le joueur 1 a une chance sur 2 de tomber au deuxième panneau et une chance sur 2 d’avoir réussi le panneau 1.
Ainsi : P("le joueur 2 gagne et le joueur 1 est tombé au deuxième panneau") = $(\frac{1}{2})^{18}$.
On peut montrer de même que : P("le joueur 2 gagne et le joueur 1 est tombé au k-ième panneau") = $(\frac{1}{2})^{18}$. C’est-à-dire que toutes les trajectoires de victoire ont une probabilité égale à $(\frac{1}{2})^{18}$.
En conséquence :
Ainsi : P("le joueur 2 gagne") = 19 $\times (\frac{1}{2})^{18} \simeq 7 \times 10^{-5}$.
Pour les autres dossards, le principe est le même et l’essentiel du travail consiste à déterminer combien de sous-cas sont favorables au joueur.
Par exemple, le joueur au dossard 3 gagne la partie si le joueur 1 la gagne (1 cas favorable), mais aussi si le joueur 2 la gagne (18 autres cas favorables) ou encore s’il la gagne après que ses deux camarades précédents aient chuté. Pour estimer le nombre de cas favorables, il suffit juste de calculer combien il y a de façons de placer 2 chutes parmi 18 panneaux, ce qui vaut précisément :
$\frac{18 !}{2 ! 16 !}$ soit $\frac{18 \times 17}{2}$ = 153.
En tout, le joueur 3 a donc 1 + 18 + 153 = 172 scénarii favorables.
La probabilité de succès du joueur 3 est donc 172 $\times (\frac{1}{2})^{18} \simeq 7 \times 10^{-4}$. C’est tout aussi négligeable. On comprend mieux le destin du professeur de mathématiques #062.
Par extension, on peut montrer facilement que :
P("le joueur n gagne") = $\Big(\sum_{k=0}^{n-1} \binom{18}{k} \Big) \times (\frac{1}{2})^{18}$.
On calcule facilement les sommes de coefficients binomiaux à l’aide de Maple avec des commandes comme : sum(binomial(18, k), k = 0 .. 3).
D’où le tableau :
Dossard du joueur | Nombre de cas favorables | Valeur approchée de la probabilité de victoire |
1 | 1 | $4 \times 10^{-6}$ |
2 | 19 | $7 \times 10^{-5}$ |
3 | 172 | $7 \times 10^{-4}$ |
4 | 988 | $4 \times 10^{-3}$ |
5 | 4048 | 0,015 |
6 | 12 616 | 0,048 |
7 | 31 180 | 0,119 |
8 | 63 004 | 0,24 |
9 | 106 762 | 0,407 |
10 | 155 382 | 0,593 |
11 | 199 140 | 0,76 |
12 | 230 964 | 0,881 |
13 | 249 528 | 0,952 |
14 | 258 096 | 0,985 |
15 | 261 156 | 0,996 |
16 | 261 972 | 0,999 |
On remarque d’abord ce que notre intuition nous disait, plus le numéro de dossard est élevé et plus le concurrent a des chances de survivre. A partir du dossard 10, il y a même plus d’une chance sur deux de survivre. Et plus de 95 % de chances à partir du dossard 13. C’est la raison pour laquelle, les organisateurs introduisent une limite de temps de 16 minutes pour tout le monde, comptant sur les hésitations des joueurs et leurs conflits pour réduire le nombre de vainqueurs.
On constate aussi que Seong Gi-hun, qui obtient presque par hasard le dossard 16, avait dans des conditions normales de jeu environ 99,9 % de chances de survivre à cette épreuve.
Un résultat qu’il convient de nuancer car, outre le problème du temps limite, deux concurrents vont tomber sans révéler de nouveau panneau correct. Lorsque le personnage antipathique Jang Deok-su, #101, refuse d’avancer, les dossards 10 et 11 vont disparaître pour le pousser dans le vide, ce que réussira à faire Han Mi-nyeo, #212. Même l’ancien verrier, #017, dossard 13, qui sait distinguer le verre trempé du verre normal, est poussé par Cho Sang-woo qui craint de ne pouvoir disputer ses chances en raison de la limite de temps, mais dans sa chute il révèle le dernier panneau inconnu. Et déclenche ainsi la victoire des dossards 14, 15 et 16.
Il y a donc 2 concurrents qui n’apportent rien à l’effort collectif, ce qui fait qu’en réalité la partie se joue plutôt à 14 joueurs pour 18 panneaux et cela fait baisser les probabilités de succès de tous les candidats, car tout se passe comme si Cho Sang-woo était dossard 12 (ce qui lui fait perdre environ 10 % de chances de survie) et Seong Gi-hun était dossard 14.
De nouveau le point de vue des organisateurs du jeu : estimer le nombre de survivants
L’obtention des résultats du tableau du paragraphe précédent permet aussi de calculer la probabilité qu’il y ait exactement X gagnants. On représente ainsi le nombre de gagnants par une variable aléatoire X.
P(X=0) = P("tous les joueurs sont perdants").
Comme la victoire d’un joueur entraîne tous ces successeurs, cela revient à estimer la probabilité que le joueur au dossard 16 ne gagne pas.
p(X=0) = 1 - P("le dossard 16 gagne")
Donc P(X=0) = 1 - $\Big(\sum_{k=0}^{15} \binom{18}{k} \Big) \times (\frac{1}{2})^{18}$
Et donc : P(X=0) = $\frac{\Big(2^{18} - \sum_{k=0}^{15} \binom{18}{k} \Big)}{{2}^{18}}$
Mais la formule du binôme de Newton affirme que :
$2^{18}$ = (1+1)$^{18}$ = $\sum_{k=0}^{18} \binom{18}{k} 1^k \times 1^{18-k}$ = $\sum_{k=0}^{18} \binom{18}{k}$.
Donc $2^{18} - \sum_{k=0}^{15} \binom{18}{k}$ = $\sum_{k=0}^{2} \binom{18}{18-k}$ et ainsi :
P(X=0) = $\frac{\sum_{k=0}^{2} \binom{18}{18-k}}{2^{18}}$ = $\frac{172}{2^{18}}$.
On calcule P(X=1) = $\Big(\sum_{k=0}^{15} \binom{18}{k} \Big) \times (\frac{1}{2})^{18}$ - $\Big(\sum_{k=0}^{14} \binom{18}{k} \Big) \times (\frac{1}{2})^{18}$ = $\frac{\binom{18}{15}}{2^{18}}$ = $\frac{816}{2^{18}}$, car dans ce cas s’il y a un seul gagnant, cela signifie que le joueur au dossard 15 et tous ses prédécesseurs sont perdants et que le seul gagnant est le dossard 16, il faut donc calculer P("le joueur 16 gagne") - P("le joueur 15 gagne").
On obtient donc dans le cas général la probabilité qu’il y ait exactement N gagnants (N entre 1 et 15) :
P(X=N)= P("le joueur 16-N+1 gagne") - P("le joueur 16-N gagne"), d’où :
P(X=N) = $\frac{\binom{18}{16-N}}{{2}^{18}}$
On calcule facilement les coefficients binomiaux à l’aide de Maple avec des commandes comme : binomial(18, 15).
D’où le tableau :
Nombre exact de survivants | Probabilité |
0 | $\frac{172}{2^{18}}$ |
1 | $\frac{816}{2^{18}}$ |
2 | $\frac{3060}{2^{18}}$ |
3 | $\frac{8568}{2^{18}}$ |
4 | $\frac{18564}{2^{18}}$ |
5 | $\frac{31824}{2^{18}}$ |
6 | $\frac{43758}{2^{18}}$ |
7 | $\frac{48620}{2^{18}}$ |
8 | $\frac{43758}{2^{18}}$ |
9 | $\frac{31824}{2^{18}}$ |
10 | $\frac{18564}{2^{18}}$ |
11 | $\frac{8568}{2^{18}}$ |
12 | $\frac{3060}{2^{18}}$ |
13 | $\frac{816}{2^{18}}$ |
14 | $\frac{153}{2^{18}}$ |
15 | $\frac{18}{2^{18}}$ |
16 | $\frac{1}{2^{18}}$ |
On constate que cette probabilité est maximale pour exactement 7 survivants, avec environ 18,5 % de chances d’avoir 7 gagnants.
Cette simulation sur 10 millions de parties confirme que 7 survivants était le cas la plus fréquent, pour presque 18,6 % des parties jouées :
Survivants = 0, Fréquence = 0.000649
Survivants = 1, Fréquence = 0.003112
Survivants = 2, Fréquence = 0.011675
Survivants = 3, Fréquence = 0.032686
Survivants = 4, Fréquence = 0.070823
Survivants = 5, Fréquence = 0.121341
Survivants = 6, Fréquence = 0.166752
Survivants = 7, Fréquence = 0.185612
Survivants = 8, Fréquence = 0.166912
Survivants = 9, Fréquence = 0.121481
Survivants = 10, Fréquence = 0.070886
Survivants = 11, Fréquence = 0.032609
Survivants = 12, Fréquence = 0.011699
Survivants = 13, Fréquence = 0.003104
Survivants = 14, Fréquence = 0.000584
Survivants = 15, Fréquence = 0.000072
Survivants = 16, Fréquence = 0.000004
Moyenne des survivants = 7.000545
Il est alors très facile de calculer l’espérance mathématique de la variable aléatoire X représentant le nombre de survivants.
E(X) = $\sum_{k=0}^{16} k \times P(X=k)$.
On obtient une espérance qui vaut à peu près 7,000 076 soit environ 7 survivants. Ce résultat montre a posteriori que nos simulations sont efficaces.
Conclusion : quel scénario était le plus probable ?
On peut néanmoins se dire que, dans la série, c’est "étrange" de n’avoir que 3 survivants. Ce scénario avait 3,3 % de chances de se réaliser seulement. Mais certains diront que c’est le charme des probabilités, ce n’est pas forcément le plus probable qui se réalise. On peut aussi se souvenir que le jeu est quelque peu faussé par deux éléments :
– le temps limité pour faire passer les 16 concurrents ;
– le fait que 2 concurrents n’ont pas dévoilé de panneaux sûrs en chutant.
On peut ainsi revoir le calcul avec 14 concurrents au lieu de 16.
Les probabilités de victoire des joueurs jusqu’au dossard 14 ne changent pas.
Une simulation large nous oriente alors sans trop de surprise vers 5 survivants comme étant le cas le plus fréquent :
Survivants = 0, Fréquence = 0.015477
Survivants = 1, Fréquence = 0.032690
Survivants = 2, Fréquence = 0.070825
Survivants = 3, Fréquence = 0.121326
Survivants = 4, Fréquence = 0.166989
Survivants = 5, Fréquence = 0.185602
Survivants = 6, Fréquence = 0.166845
Survivants = 7, Fréquence = 0.121455
Survivants = 8, Fréquence = 0.070772
Survivants = 9, Fréquence = 0.032644
Survivants = 10, Fréquence = 0.011605
Survivants = 11, Fréquence = 0.003112
Survivants = 12, Fréquence = 0.000587
Survivants = 13, Fréquence = 0.000067
Survivants = 14, Fréquence = 0.000004
Moyenne des survivants = 5.003765
En fait, les fréquences sont juste décalées de 2 (vers le haut) par rapport au cas à 16 joueurs.
Dans le cas général, pour la variable aléatoire X indiquant le nombre de survivants, la probabilité d’avoir N survivants devient :
P(X=N) = $\frac{\binom{18}{14-N}}{{2}^{18}}$.
On calcule facilement son espérance, qui vaut environ 5,0045.
Lors de la partie jouée dans la série, on pouvait donc s’attendre à trouver 5 survivants à cette épreuve. Avoir 3 survivants n’avait "qu’une probabilité de" $\frac{31824}{2^{18}}$ soit 12,1 % de chances de se produire. C’est déjà beaucoup plus que si l’on considère une partie à 16 joueurs. C’est assez intuitif d’ailleurs. Avec 18 panneaux ayant une probabilité de 0,5 de casser, on peut s’attendre à avoir 9 panneaux cassés soit 9 chutes et donc à obtenir 14 - 9 =5 survivants. Mais finalement avoir 3 survivants est avant tout un choix scénaristique des auteurs de la série, choix que les mathématiques sont bien loin d’exclure !