Mathématiques pour les nuls, nombre de mains au poker

I Win
Creative Commons License photo credit: Kevin Labianco

Poker Hand, Aces over Eights, originally uploaded by halfstop.

Le terme main désigne un ensemble de 5 cartes :

Par exemple:
As de trèfle, As de carreau, 8 de trèfle, 8 de pique et 6 de carreaux.

L’ordre des cartes n’a pas d’importance.

Pour bien comprendre ce billet, il peut être bon de relire:

Il y a 52 cartes dans le jeu.
Nous avons donc 52 possibilités pour la première carte. Celle-ci disparaît du jeu et il ne reste que 51 pour la deuxième, puis 50 pour la troisième, 49 pour la quatrième et enfin 48 pour la dernière.

52x51x50x49x48=311 875 200

Ce qui ne donne pas 311 875 200 mains! En effet nous avons spécifié plus haut que l’ordre n’avait pas d’importance !

A Six and a King
Creative Commons License photo credit: Wade From Oklahoma

Or nous avons dénombré plus de mains qu’il en a, puisqu’on a dénombré toutes les permutations possible des 5 cartes.
or il y a 5!=120 permutations dans un ensemble à 5 éléments.

La réponse au problème est donc
52x51x50x49x48/120=2598960Il y a exactement 2 598 960 mains au poker.
(On peut retenir, ça impressionne toujours en société qu’il y a environ 2,6 millions de mains au poker et que la probabilité d’avoir le plus gros jeu, soit la quinte flush royale à pique servie, est d’environ une chance sur 2,6 millions. Nous reparlerons de probabilité plus tard ! )

Qu’avons nous, mathématiquement, calculer ?

Combinaison, une définition simple :

On appelle combinaison de p élément d’un ensemble à n éléments une partie de cet ensemble ayant p éléments.

On note C(n,p) le nombre de ces combinaisons et on a:

cnp

Le script Python, avec la fonction cnp(n,p) qui permet de calculer le nombres de combinaisons :

def fact (n):« retourne la factorielle de n »if n==0  :return 1else:

return n*fact(n-1) #fonction récursive

def cnp (n,p):

« retourne le nombre de combinaisons, p parmis n »

if p>n:

return « erreur »

exit

result=1

# Pour éviter de gérer de trop gros nombres

# On utilises une boucle.

for i in range(n,n-p,-1):

result *= i

return result/fact(p)

et un screenshot de l’IDLE:

cnp2

Le Poker pour les nuls
Apprenez les principes fondamentaux du jeu de poker.

Small Blind (Scoopeo)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *