Hier, le 10 août 2012, un britannique a remporté le plus gros gain du célèbre jeu de loterie européen : la bagatelle de 190 millions d’euros. De quoi s’offrir de belles choses. Cela faisait 10 tirages consécutifs que personne n’avait réussi à trouver les 5 bons numéros parmi les 50 et les 2 étoiles parmi les 11. Et pourtant, beaucoup de personnes jouent ? Il devrait y avoir un moyen ? Et bien en se basant sur les mathématiques, la probabilité d’avoir ces 5 numéros et ces 2 étoiles n’est que de 0,000 000 858 %. Pour autant, le phénomène de société du “et pourquoi pas moi ?” fait que l’Euromillions reste un jeu très populaire, plus encore quand la cagnotte atteint son plafond de 190 millions.
Etudions un petit peu ce jeu, d’un point de vue des probabilités. Je vous propose ensuite un petit code PHP qui permet de générer des grilles d’Euromillions et d’en sortir quelques statistiques intéressantes. Hier, je me suis amusé à tirer 100 000 grilles aléatoirement. Et bien figurez-vous que je n’ai pas trouvé la bonne combinaison !
Probabilités
Pour calculer les différentes probabilités d’atteindre les différents rangs de gain de l’Euromillions, on utilise les combinaisons (l’ordre de sortie des numéros ne compte pas).
Ainsi la probabilité d’obtenir les 5 bons numéros et les 2 bonnes étoiles est donnée par la formule :
Soit de 1 chance sur 116 531 800.
Voici un tableau qui résume les probabilités pour les différents rangs, trouvé sur Wikipédia :
En résumé, une personne aura 7,81 % de chance (soit environ une chance sur treize) de remporter un gain sur chaque combinaison jouée à 2 € la combinaison. À titre de comparaison, au Loto, un joueur a 16,7 % de chance (environ une chance sur six) de remporter un gain sur une combinaison simple.
Code PHP
Le code PHP suivant permet d’effectuer un tirage aléatoire d’une grille d’Euromillions. Les résultats sont ensuite enregistrés dans une base de données, pour un futur traitement. A noter qu’avant d’être enregistré, les nombres et les étoiles du tirage sont rangés dans un ordre croissant, ceci afin de faciliter la sélection dans la table plus tard. Le code PHP devrait être suffisamment commenté (en anglais !) pour que vous le compreniez facilement.
Et voici le code SQL permettant de créer la table associée au précédent code :
Vous obtiendrez quelque chose de cette forme après avoir lancé le code PHP :