Yam, Poker et Probabilités
Alain Brobecker (baah/Arm's Tech) - août 2004

  1. Principe des lancers
  2. Calcul des probabilités en un seul jet
  3. Probabilités des différentes combinaisons
      3.1. Stratégie 1: chasse au full
      3.2. Stratégie 2: chasse a la quinte
      3.3. Choix de la stratégie
  4. Programme de calcul des probabilités

1. Principe des lancers

Le but est d'obtenir certaines combinaisons de dés. Au début le joueur lance 5 dés, et s'il n'est pas satisfait de la combinaison obtenue il a le droit de rejouer en relançant tous les dés, ou seulement quelques uns. Il peut enfin rejouer une troisième fois.
Les combinaisons par ordre d'importance sont: la paire (P, 2 dés identiques), la double paire (D), le brelan (B, 3 dés identiques), le full (F, brelan+paire), le carré (C, 4 dés identiques) et enfin la quinte (Q, 5 dés identiques).
Nous ne nous intéresserons ni à la petite suite (4 dés qui se suivent) ni à la grand suite (5 dés qui se suivent). En soi leurs probabilités ne sont pas compliquées a calculer, mais s'établissent en parallèle de celles des autres combinaisons, ce qui complique beaucoup le problème. Par ailleurs le choix du type de combinaisons à chercher (dés identiques ou consécutifs) dépend aussi du jeu.

2. Calcul des probabilités en un seul jet

Avant de s'intéresser au cas réel du Yam ou du Poker, nous devons calculer les probabilités (ou les nombres de possibilités, ce qui revient au même) lorsque nous effectuons un seul jet. Nous étudierons aussi les cas on nous conservons un certain nombre de dés et que nous relançons les autres. Rappelons que nCp(5;2) est le nombre de combinaisons de 2 éléments choisis parmi 5, soit 5! / [ 2! x (5-2)! ].

2.1. En lancant 5 dés, les possibilités d'obtenir les différentes combinaisons sont:

rien:6 x 5 x 4 x 3 x 2 = 720
paire:6 x 1 x nCp(5;2) x 5 x 4 x 3 = 3600
double paire: ( 6 x 1 x nCp(5;2) x 5 x 1 x nCp(3;2) ) : 2 x 4 = 1800
brelan:6 x 1 x 1 x nCp(5;3) x 5 x 4 = 1200
full:6 x 1 x 1 x nCp(5;3) x 5 x 1 = 300
carré:6 x 1 x 1 x 1 x nCp(5;4) x 5 = 150
quinte:6 x 1 x 1 x 1 x 1 = 6
total:65 = 7776 possibilités
Pour la double paire on divise par deux car le tirage 1122 est équivalent au tirage 2211, mais tous les deux sont comptés avec la formule 6 x nCp(5;2) x 5 x nCp(3;2).

2.2. Si quatre dés sont identiques (un carré) et que nous relançons le 5ème dé, alors nous avons une probabilité de 1/6 d'avoir une quinte et une probabilité de 5/6 de n'avoir toujours qu'un carré.

2.3. Si trois dés sont identiques (un brelan ou même un full) et que nous relançons les deux autres dés, alors les possibilités d'obtenir les différentes combinaisons sont:

brelan:5 x 4 = 20
full:5 x 1 = 5
carré:1 x nCp(2;1) x 5 = 10
quinte:1 x 1 = 1
total:62 = 36 possibilités

2.4. Si deux dés sont identiques (une paire ou une double paire) et que nous relançons les trois autres dés, alors les possibilités d'obtenir les différentes combinaisons sont:

paire:5 x 4 x 3 = 60
double paire:5 x 1 x nCp(3;2) x 4 = 60
brelan:1 x nCp(3;1) x 5 x 4 = 60
full:1 x nCp(3;1) x 5 x 1 + 5 x 1 x 1 = 20
carré:1 x 1 x nCp(3;2) x 5 = 15
quinte:1 x 1 x 1 =1
total:63 = 216 possibilités
Pour le full, si les deux dés que l'on garde sont 11, alors le full peut être obtenu en tirant soit 1xx, soit xxx. Ceci explique l'addition dans le calcul du full.

2.5. Si nous avons une double paire et que nous relançons uniquement le dé isolé, alors nous avons une probabilité de 2/6 d'avoir un full et une probabilité de 4/6 de garder une double paire.

3. Probabilités des différentes combinaisons

Comme nous avons le droit de relancer 3 fois tout ou partie des dés, nous devons multiplier les probabilités en fonction des dés qui sont conservés. Voici une exemple de calcul: supposons que nous n'obtenons rien au premier jet ( p(R)=720/7776 ), nous relançons alors les 5 dés et obtenons un brelan ( p(B)=1200/7776 ), enfin nous relançons les deux autres dés et obtenons un carré ( p(C a partir d'un B)=10/36 ). Cette partie peut être symbolisée par RBC (Rien, Brelan, Carré) et sa probabilité est:

p(RBC) = 720/7776 x 1200/7776 x 10/36 = 625/157464 = 0.3969... %

Nous avons deux stratégies de jeu possibles lorsque nous avons une double paire: soit nous cherchons à obtenir un full en conservant la double paire, soit nous ne gardons qu'une paire pour autoriser aussi l'obtention d'un carré, d'une quinte, etc... Les deux stratégies sont étudiées ci-dessous.

3.1. Stratégie 1: chasse au full. Lorsque nous avons une double paire, nous conservons celle-ci et relançons le dé isolé pour tâcher d'obtenir un full. Alors les différentes parties possibles et leurs probabilités sont:

RRR (125/157464)RRP (625/157464)RRD (625/314928)
RRB (625/472392)RRF (625/1889568)RRC (625/3779136)
RRQ (25/3779136)RPP (625/52488)RPD (625/52488)
RPB (625/52488)RPF (625/157464)RPC (625/209952)
RPQ (125/629856)RDD (125/8748)RDF (125/17496)
RBB (625/78732)RBF (625/314928)RBC (625/157464)
RBQ (125/314928)RFF (125/34992)RCC (625/419904)
RCQ (125/419904)RQQ (5/69984)PPP (625/17496)
PPD (625/17496)PPB (625/17496)PPF (625/52488)
PPC (625/69984)PPQ (125/209952)PDD (125/1458)
PDF (125/2916)PBB (625/8748)PBF (625/34992)
PBC (625/17496)PBQ (125/34992)PFF (125/2916)
PCC (625/23328)PCQ (125/23328)PQQ (25/11664)
DDD (25/243)DDF (25/486)DFF (25/324)
BBB (625/13122)BBF (625/52488)BBC (625/26244)
BBQ (125/52488)BFF (125/5832)BCC (625/17496)
BCQ (125/17496)BQQ (25/5832)FFF (25/648)
CCC (625/46656)CCQ (125/46656)CQQ (25/7776)
QQQ (1/1296)
Ces résultats nous mènent à calculer les probabilités pour les différentes combinaisons: pour connaitre la probabilité de la quinte, nous ajoutons toutes les probabilités des parties se terminant par un Q. Les probabilités sont alors:
p(Rien)= 125/157464= 0.079...%
p(Paire)= 8125/157464= 5.159...%
p(Double)= 79525/314928= 25.251...%
p(Brelan)= 83125/472392= 17.596...%
p(Full)= 629275/1889568= 33.302...%
p(Carré)= 578125/3779136= 15.297...%
p(Quinte)= 125161/3779136= 3.311...%

3.2. Stratégie 2: chasse a la quinte. Cette fois, lorsque nous avons une double paire, nous conservons une seule paire et nous relançons les trois autres dés. Sur un seul jet, ceci diminue les chances d'avoir un Full (20/216 au lieu de 2/6) mais maximise les chances d'avoir mieux qu'une double paire (96/216 au lieu de 2/6). Avec cette stratégie les différentes parties possibles et leurs probabilités sont:

RRR (125/157464)RRP (625/157464)RRD (625/314928)
RRB (625/472392)RRF (625/1889568)RRC (625/3779136)
RRQ (25/3779136)RPP (625/52488)RPD (625/52488)
RPB (625/52488)RPF (625/157464)RPC (625/209952)
RPQ (125/629856)RDP (625/104976)RDD (625/104976)
RDB (625/104976)RDF (625/314928)RDC (625/419904)
RDQ (125/1259712)RBB (625/78732)RBF (625/314928)
RBC (625/157464)RBQ (125/314928)RFF (125/34992)
RCC (625/419904)RCQ (125/419904)RQQ (5/69984)
PPP (625/17496)PPD (625/17496)PPB (625/17496)
PPF (625/52488)PPC (625/69984)PPQ (125/209952)
PDP (625/17496)PDD (625/17496)PDB (625/17496)
PDF (625/52488)PDC (625/69984)PDQ (125/209952)
PBB (625/8748)PBF (625/34992)PBC (625/17496)
PBQ (125/34992)PFF (125/2916)PCC (625/23328)
PCQ (125/23328)PQQ (25/11664)DPP (625/34992)
DPD (625/34992)DPB (625/34992)DPF (625/104976)
DPC (625/139968)DPQ (125/419904)DDP (625/34992)
DDD (625/34992)DDB (625/34992)DDF (625/104976)
DDC (625/139968)DDQ (125/419904)DBB (625/17496)
DBF (625/69984)DBC (625/34992)DBQ (125/69984)
DFF (125/5832)DCC (625/46656)DCQ (125/46656)
DQQ (25/23328)BBB (625/13122)BBF (625/52488)
BBC (625/26244)BBQ (125/52488)BFF (125/5832)
BCC (625/17496)BCQ (125/17496)BQQ (25/5832)
FFF (25/648)CCC (625/46656)CCQ (125/46656)
CQQ (25/7776)QQQ (1/1296)
Ces résultats nous mènent aux probabilités suivantes pour les différentes combinaisons:
p(Rien)= 125/157464= 0.079...%
p(Paire)= 40625/314928= 12.899...%
p(Double)= 2500/19683= 12.701...%
p(Brelan)= 273125/944784= 28.908...%
p(Full)= 99475/472392= 21.057...%
p(Carré)= 769375/3779136= 20.358...%
p(Quinte)= 150961/3779136= 3.994...%

3.3 Choix de la stratégie. Il semble difficile de donner une méthode de choix convenant pour tous les types de jeu, sachant que ceux-ci peuvent avoir des objectifs très différents (comparez le Yam et le Poker par exemple). D'autant plus que les probabilités des suites n'ont pas été prises en compte. Pour le Yam, mon choix personnel est de favoriser la chasse à la quinte plutôt que la chasse au full, puisque cette stratégie maximise la probabilité d'avoir mieux qu'une double paire (environ 74% contre 69%). Par ailleurs je ne chasse les suites que lorsque j'obtiens une petite suite au premier lancer. Ce choix est fait au "feeling" pour l'instant mais n'est pas plus justifié que l'achat d'un billet de loterie (tout en étant moins cher puisque l'éspérance de gain est nulle ;).

4. Programme de calcul des probabilités

Le programme ci-dessous est celui qui permet de calculer les probabilités dans le cas de la stratégie 2. Il a été écrit en SockZ, un excellent langage de programmation basé sur le Forth, et qui permet de manipuler aisément les grands nombres et les rationnels. Et, euh... écrit par votre serviteur... ce qui explique sans doute pourquoi il est tellement bon! ;) Bref, le voici:

;2004aug24 - Alain Brobecker
;Calcule les probabilites des differentes combinaisons en lancant 5 des
;avec 3 jets possibles. On s'arrete des qu'on a un Full, et lorsqu'on
;a deux paires, on relance 3 des (au lieu de 1) ce qui diminue les
;chances d'avoir un Full (20/216 au lieu de 2/6) mais maximise les
;chances d'avoir mieux qu'une double paire (96/216).

  0 1 ;Quinte
  0 1 ;Carré
  0 1 ;Full
  0 1 ;Brelan
  0 1 ;Double paire
  0 1 ;Paire
  0 1 ;Rien

  "RRR "  720 7776  720 7776  720 7776 Q* Q* ADD_R QPRINT CR
  "RRP "  720 7776  720 7776 3600 7776 Q* Q* ADD_P QPRINT CR
  "RRD "  720 7776  720 7776 1800 7776 Q* Q* ADD_D QPRINT CR
  "RRB "  720 7776  720 7776 1200 7776 Q* Q* ADD_B QPRINT CR
  "RRF "  720 7776  720 7776  300 7776 Q* Q* ADD_F QPRINT CR
  "RRC "  720 7776  720 7776  150 7776 Q* Q* ADD_C QPRINT CR
  "RRQ "  720 7776  720 7776    6 7776 Q* Q* ADD_Q QPRINT CR
  "RPP "  720 7776 3600 7776   60  216 Q* Q* ADD_P QPRINT CR
  "RPD "  720 7776 3600 7776   60  216 Q* Q* ADD_D QPRINT CR
  "RPB "  720 7776 3600 7776   60  216 Q* Q* ADD_B QPRINT CR
  "RPF "  720 7776 3600 7776   20  216 Q* Q* ADD_F QPRINT CR
  "RPC "  720 7776 3600 7776   15  216 Q* Q* ADD_C QPRINT CR
  "RPQ "  720 7776 3600 7776    1  216 Q* Q* ADD_Q QPRINT CR
  "RDP "  720 7776 1800 7776   60  216 Q* Q* ADD_P QPRINT CR
  "RDD "  720 7776 1800 7776   60  216 Q* Q* ADD_D QPRINT CR
  "RDB "  720 7776 1800 7776   60  216 Q* Q* ADD_B QPRINT CR
  "RDF "  720 7776 1800 7776   20  216 Q* Q* ADD_F QPRINT CR
  "RDC "  720 7776 1800 7776   15  216 Q* Q* ADD_C QPRINT CR
  "RDQ "  720 7776 1800 7776    1  216 Q* Q* ADD_Q QPRINT CR
  "RBB "  720 7776 1200 7776   20   36 Q* Q* ADD_B QPRINT CR
  "RBF "  720 7776 1200 7776    5   36 Q* Q* ADD_F QPRINT CR
  "RBC "  720 7776 1200 7776   10   36 Q* Q* ADD_C QPRINT CR
  "RBQ "  720 7776 1200 7776    1   36 Q* Q* ADD_Q QPRINT CR
  "RFF "  720 7776  300 7776    1    1 Q* Q* ADD_F QPRINT CR
  "RCC "  720 7776  150 7776    5    6 Q* Q* ADD_C QPRINT CR
  "RCQ "  720 7776  150 7776    1    6 Q* Q* ADD_Q QPRINT CR
  "RQQ "  720 7776    6 7776    1    1 Q* Q* ADD_Q QPRINT CR

  "PPP " 3600 7776   60  216   60  216 Q* Q* ADD_P QPRINT CR
  "PPD " 3600 7776   60  216   60  216 Q* Q* ADD_D QPRINT CR
  "PPB " 3600 7776   60  216   60  216 Q* Q* ADD_B QPRINT CR
  "PPF " 3600 7776   60  216   20  216 Q* Q* ADD_F QPRINT CR
  "PPC " 3600 7776   60  216   15  216 Q* Q* ADD_C QPRINT CR
  "PPQ " 3600 7776   60  216    1  216 Q* Q* ADD_Q QPRINT CR
  "PDP " 3600 7776   60  216   60  216 Q* Q* ADD_P QPRINT CR
  "PDD " 3600 7776   60  216   60  216 Q* Q* ADD_D QPRINT CR
  "PDB " 3600 7776   60  216   60  216 Q* Q* ADD_B QPRINT CR
  "PDF " 3600 7776   60  216   20  216 Q* Q* ADD_F QPRINT CR
  "PDC " 3600 7776   60  216   15  216 Q* Q* ADD_C QPRINT CR
  "PDQ " 3600 7776   60  216    1  216 Q* Q* ADD_Q QPRINT CR
  "PBB " 3600 7776   60  216   20   36 Q* Q* ADD_B QPRINT CR
  "PBF " 3600 7776   60  216    5   36 Q* Q* ADD_F QPRINT CR
  "PBC " 3600 7776   60  216   10   36 Q* Q* ADD_C QPRINT CR
  "PBQ " 3600 7776   60  216    1   36 Q* Q* ADD_Q QPRINT CR
  "PFF " 3600 7776   20  216    1    1 Q* Q* ADD_F QPRINT CR
  "PCC " 3600 7776   15  216    5    6 Q* Q* ADD_C QPRINT CR
  "PCQ " 3600 7776   15  216    1    6 Q* Q* ADD_Q QPRINT CR
  "PQQ " 3600 7776    1  216    1    1 Q* Q* ADD_Q QPRINT CR

  "DPP " 1800 7776   60  216   60  216 Q* Q* ADD_P QPRINT CR
  "DPD " 1800 7776   60  216   60  216 Q* Q* ADD_D QPRINT CR
  "DPB " 1800 7776   60  216   60  216 Q* Q* ADD_B QPRINT CR
  "DPF " 1800 7776   60  216   20  216 Q* Q* ADD_F QPRINT CR
  "DPC " 1800 7776   60  216   15  216 Q* Q* ADD_C QPRINT CR
  "DPQ " 1800 7776   60  216    1  216 Q* Q* ADD_Q QPRINT CR
  "DDP " 1800 7776   60  216   60  216 Q* Q* ADD_P QPRINT CR
  "DDD " 1800 7776   60  216   60  216 Q* Q* ADD_D QPRINT CR
  "DDB " 1800 7776   60  216   60  216 Q* Q* ADD_B QPRINT CR
  "DDF " 1800 7776   60  216   20  216 Q* Q* ADD_F QPRINT CR
  "DDC " 1800 7776   60  216   15  216 Q* Q* ADD_C QPRINT CR
  "DDQ " 1800 7776   60  216    1  216 Q* Q* ADD_Q QPRINT CR
  "DBB " 1800 7776   60  216   20   36 Q* Q* ADD_B QPRINT CR
  "DBF " 1800 7776   60  216    5   36 Q* Q* ADD_F QPRINT CR
  "DBC " 1800 7776   60  216   10   36 Q* Q* ADD_C QPRINT CR
  "DBQ " 1800 7776   60  216    1   36 Q* Q* ADD_Q QPRINT CR
  "DFF " 1800 7776   20  216    1    1 Q* Q* ADD_F QPRINT CR
  "DCC " 1800 7776   15  216    5    6 Q* Q* ADD_C QPRINT CR
  "DCQ " 1800 7776   15  216    1    6 Q* Q* ADD_Q QPRINT CR
  "DQQ " 1800 7776    1  216    1    1 Q* Q* ADD_Q QPRINT CR

  "BBB " 1200 7776   20   36   20   36 Q* Q* ADD_B QPRINT CR
  "BBF " 1200 7776   20   36    5   36 Q* Q* ADD_F QPRINT CR
  "BBC " 1200 7776   20   36   10   36 Q* Q* ADD_C QPRINT CR
  "BBQ " 1200 7776   20   36    1   36 Q* Q* ADD_Q QPRINT CR
  "BFF " 1200 7776    5   36    1    1 Q* Q* ADD_F QPRINT CR
  "BCC " 1200 7776   10   36    5    6 Q* Q* ADD_C QPRINT CR
  "BCQ " 1200 7776   10   36    1    6 Q* Q* ADD_Q QPRINT CR
  "BQQ " 1200 7776    1   36    1    1 Q* Q* ADD_Q QPRINT CR

  "FFF "  300 7776    1    1    1    1 Q* Q* ADD_F QPRINT CR

  "CCC "  150 7776    5    6    5    6 Q* Q* ADD_C QPRINT CR
  "CCQ "  150 7776    5    6    1    6 Q* Q* ADD_Q QPRINT CR
  "CQQ "  150 7776    1    6    1    1 Q* Q* ADD_Q QPRINT CR

  "QQQ "    6 7776    1    1    1    1 Q* Q* ADD_Q QPRINT CR

;Affiche les probabilites et le total
  7 QOVER 7 QOVER 7 QOVER 7 QOVER 7 QOVER 7 QOVER 7 QOVER CR
  "p(Rien)=   " COPY2 QPRINT %PRINT CR
  "p(Paire)=  " COPY2 QPRINT %PRINT CR
  "p(Double)= " COPY2 QPRINT %PRINT CR
  "p(Brelan)= " COPY2 QPRINT %PRINT CR
  "p(Full)=   " COPY2 QPRINT %PRINT CR
  "p(Carré)=  " COPY2 QPRINT %PRINT CR
  "p(Quinte)= " COPY2 QPRINT %PRINT CR
  "---------" CR
  "p(Tout)=    "  Q+ Q+ Q+ Q+ Q+ Q+ COPY2 QPRINT %PRINT CR
END

#ADD_R COPY2 3 QOVER Q+ 3 QSWAP DROP2 END
#ADD_P COPY2 4 QOVER Q+ 4 QSWAP DROP2 END
#ADD_D COPY2 5 QOVER Q+ 5 QSWAP DROP2 END
#ADD_B COPY2 6 QOVER Q+ 6 QSWAP DROP2 END
#ADD_F COPY2 7 QOVER Q+ 7 QSWAP DROP2 END
#ADD_C COPY2 8 QOVER Q+ 8 QSWAP DROP2 END
#ADD_Q COPY2 9 QOVER Q+ 9 QSWAP DROP2 END

#%PRINT " (" OVER2 100 * OVER2 / ;p q (100*p)%q [(100*p)/q]
        PRINT "." 1000 * OVER2 / ;p q ((100*p)%q*1000)%q [((100*p)%q*1000)/q]
        COPY 99 SKIP> "0"
        COPY 9 SKIP> "0"
        PRINT "%)" DROP2 DROP END

;**** From the Q library ****
#QPRINT SWAP2 PRINT "/" PRINT END
#QOVER 2 * COPY 1 + OVER SWAP2 OVER END
#QSWAP 2 * COPY 3 SWAP SWAP2 SWAP 3 SWAP SWAP2 SWAP SWAP2 END

;IN   ... p1 q1 p2 q2
;OUT  ... p1*q2+p2*q1 q1*q2
#Q+
  SWAP2                 ;p1 q1 q2 p2
  3 OVER *              ;p1 q1 q2 p2*q1
  OVER2 5 OVER * +      ;p1 q1 q2 p2*q1+q2*p1
  4 SWAP DROP *         ;p2*q1+q2*p1 q1*q2
  QSimplify
 END

;IN   ... p1 q1 p2 q2
;OUT  ... p1*p2 q1*q2
#Q*
  4 SWAP *              ;q2 q1 p2*p1
  3 SWAP *              ;p2*p1 q1*q2
  QSimplify
END

;IN   ... p q
;OUT  ... p/gcd(p;q) q/gcd(p;q)
#QSimplify
  COPY2 GCD             ;p q gcd(p;q)
  3 OVER OVER2          ;p q gcd(p;q) p gcd(p;q)
  / SWAP2 DROP          ;p q gcd(p;q) p/gcd(p;q)
  4 SWAP DROP           ;p/gcd(p;q) q gcd(p;q)
  / SWAP2 DROP          ;p/gcd(p;q) q/gcd(p;q)
END

;IN   ... B A
;OUT  ... GCD(B;A)
#GCD ABS SWAP2 ABS COPY2 SKIP> SWAP2 COPY SKIP<>0 GCDnull
.GCDloop COPY2 / DROP COPY SKIP<>0 GCDend 3 SWAP DROP SWAP2 GCDloop
.GCDend DROP SWAP2 DROP END
.GCDnull DROP2 1 END