Pictor

[en]  [fr]  Accueil  Téléchargements  Liens  FAQ 
Yam's et probabilités

Quelle est la probabilité de faire un Yam’s ?

Cette page présente plusieurs façons de calculer la probabilité de faire un Yam's ( ce jeu est également appelé Yahtzee ).


1) Présentation :

Le Yam’s se joue avec 5 dés.
Lorsque vient son tour, le joueur vise une combinaison et marquera des points en rapport avec celle-ci. Il a droit à 3 jets au maximum et peut ne relancer que certains dés.

La combinaison la mieux récompensée est le Yam’s où les 5 dés sont identiques.

Prenons un exemple :
1er lancer : 3 – 4 – 2 – 3 – 5. Les dés gardés sont les deux « 3 ». Les 3 autres dés sont relancés.
2ème lancer : 1 – 2 – 3. Le « 3 » est gardé. Les deux autres dés sont relancés.
3ème lancer : 3 – 1

Résultat : la combinaison finale est :
3 – 3 – 3 – 3 – 1

Ce résultat n’est pas un Yam’s car les cinq dés ne portent pas le même nombre.


L’objet de cette page est de répondre à la question : quelle est la probabilité de produire un Yam’s lorsque vient son tour ?

Il y a plusieurs façons de répondre à cette question :

1) En déroulant informatiquement toutes les parties possibles et en comptabilisant les Yam’s.
2) Par la méthode de Monte-Carlo : cela ressemble à la méthode 1) mais toutes les parties possibles ne sont pas explorées. Seul un sous-ensemble, supposé représentatif, est examiné. On pourra simuler par exemple 100 millions de parties et mesurer expérimentalement la valeur trouvée.
3) Par un raisonnement probabiliste, il suffit d’estimer la probabilité de chaque chemin menant au Yam’s et de faire la somme de ces probabilités.
4) En utilisant le formalisme des processus markoviens, qui simplifie la méthode 3)

Sur cette page, nous allons étudier les méthodes 2), 3) et 4).


2) Simulation par la méthode de Monte-Carlo :


Cette méthode a la vertu de la simplicité. Son point faible est que la solution est une approximation numérique et non pas une valeur exacte. Il est cependant possible de rendre les barres d’erreurs aussi petites que désirées – au prix d’une augmentation du nombre de simulations.

Le programme yams.c (en bas de page) procède à la simulation :

L’exécutable est lancé en ligne de commande. Dans l’exemple ci-dessous, un millions de simulations sont effectuées.

yams –t 1000000

La graine aléatoire peut être modifiée avec l’option –r
Voici un exemple de simulation.

C: >yams -t 100000000
Running Yams with NumDice=5, NumTurns=3, NumTrials=100000000, RandomSeed=1000

Statistics:
Number of Yam's : 4600606
Max rate Yam's : 4.6027%
Avg rate Yam's : 4.6006%
Min rate Yam's : 4.5985%
Std error : 0.0021%
Number of 1's : 201724795
Number of 2's : 201670593
Number of 3's : 201680056
Number of 4's : 201719326
Number of 5's : 201698421
Number of 6's : 201680370
Number of rolls : 1210173561
Rolls / trial : 12.1017

Nous trouvons que la probabilité est proche de 4,600 %. Le programme fournit également une barre d’erreur (« Std error ») relativement étroite : 0,0021% en valeur absolue. Consultez les références citées dans le programme pour plus de précisions et une discussion sur la signification de cette erreur. Il est important de noter principalement que cette valeur doit être prise comme une approximation de l’erreur standard.

On pourra donc écrire :

PMC(Yams) = 4,601% +/- 0,002 %

La notation MC indique que cette probabilité a été estimée par la méthode de Monte-Carlo.


3) Calcul par raisonnement probabiliste : la voie pentadécuple


Bonne nouvelle : le raisonnement ci-dessous va permettre de trouver la valeur exacte de la probabilité recherchée.
Le défaut de cette méthode est qu’il demande un travail de réflexion plus poussé.

Préliminaire : avant de commencer, il est nécessaire de poser quelques termes de vocabulaire.

Terme Définition

Paire

2 dés identiques

Triplet

3 dés identiques

Carré

4 dés identiques

Yam's

5 dés identiques


Par ailleurs, la notion de score est définie comme ceci :

A tout groupe de 5 dés, on peut associer un score.
CasScore
Les valeurs des dés sont toutes différentes 1
Paire (une ou deux)2
Triplet3
Carré4
Yam's5

De plus, avant le premier lancer, on pose par définition que le score vaut 1.

La stratégie retenue pour obtenir un Yam’s est la suivante :
Si notre score est de x, alors nous relançons les (5-x) dés ne contribuant pas au score.

Exemple d’application de cette stratégie:

Coup
Résultat du lancer
Score
Dés gardés
13 – 3 – 2 – 4 – 5
23 – 3 => relance 3 dés
23 – 3 – 3 – 1 – 2
33 – 3 – 3 => relance 2 dés
33 – 3 – 3 – 3 – 14.

Après les 3 lancers ci-dessus, le score est de 4. Il n’y a pas eu de Yam’s.

Il est possible de calculer, pour la stratégie retenue ci-dessus, la probabilité de passer d’un score donné à un autre en un jet de dés. Le nombre de dés jetés est de 5 moins le score actuel.
Ces probabilités peuvent se représenter sous forme de tableau ou de graphe :
12 3 4 5
1
120/64900/64250/6425/641/64
2
.120/6380/6315/631/63
3
..25/6210/621/62
4
...5/61/6
5
....1

La colonne de gauche représente le score avant un jet. Chaque case du tableau donne la probabilité de passer d’un score à un autre par un jet de dés.

Exemple : si j’ai une paire (ligne 2), je vais lancer 3 dés et la probabilité de passer à 3 dés identiques est de 80/63 (colonne 3)

Note : Le score ne peut pas baisser avec le temps. Une case vide représente la valeur zéro

Les bases de la théorie des probabilités nous enseignent que la probabilité d’un état donné peut être calculé en faisant la somme des probabilités des évènements menant à cet état.

Voici pour le Yam’s la liste des 15 chemins conduisant à l’état 5 dés identiques. Chaque rond jaune contient le score courant. Le score initial est de 1. Lorsqu’un Yam’s est obtenu, le score est de 5.

YamsPaths.png


Dans le schéma ci-dessus, le premier cas est : 1 -> 1 -> 1 -> 5

Sur ces 3 jets, les deux premiers ne conduisent qu’à des combinaisons où tous les dés sont différents. Le dernier jet aboutit à un Yam’s.

La probabilité du premier cas est donc le produit triple de :

- la probabilité de passer du score 1 vers lui-même

- la probabilité de passer du score 1 vers lui-même (à nouveau)

- la probabilité de passer du score 1 vers le score 5

Cette quantité vaut:

P11 . P11 . P15 = (120 / 64) (120 / 64) (1/ 64) = 25 / 3779136. Cela est proche de 0,000 0067 (un peu moins d’un millième de pourcent).

Le tableau ci-dessous présente les 15 chemins et leur probabilité respective

Evolution du score
sur 3 jets

Probabilité des jets individuels

Probabilité de la séquence





Jet 1
Jet 2 Jet 3

1
1
1
5

9,259%9,259%0,077%
0,001%
1
1 2 5
9,259%69,444%0,463%
0,030%
1135
9,259%19,290%2,778%
0,050%
1145
9,259%1,929%16,667%
0,030%
1155
9,259%0,077%100,000%
0,007%

1225
69,444%55,556%0,463%
0,179%
1235
69,444%37,037%2,778%
0,714%
1
2
4
5

69,444%6,944%16,667%
0,804%
1
2
5
5

69,444%0,463%100,000%
0,322%

1
3
3
5

19,290%69,444%2,778%
0,372%
1
3
4
5

19,290%27,778%16,667%
0,893%
1
3
5
5

19,290%2,778%100,000%
0,536%

1
4
4
5

1,929%83,333%16,667%
0,268%
1
4
5
5

1,929%16,667%100,000%
0,322%

1
5
5
5

0,077%100,000%100,000%
0,077%


Somme
4,603%


La probabilité de faire un Yam’s est la somme des probabilités des 15 cas ci-dessus, soit : 4,603 %


4) Approche markovienne

La théorie des processus markoviens permet d’arriver au même résultat qu’en 2), mais de façon plus simple, et, de plus, fournit quelques informations supplémentaires.

Si nous définissons l’état de notre système comme étant le score, tel que défini en 2), 5 états sont alors accessibles. La matrice de transition de notre système est alors le tableau déjà donné. Ici, cette matrice est notée M.


Mequals.png


Le graphe correspondant est :

StatesMarkov.png


Rappel de la théorie markovienne :

La probabilité de passer d’un état i à un état j en n étapes est égal à Mnij, l’élément de matrice (i,j) de la n-ième puissance de M.

Autrement dit, la probabilité de faire un Yam’s en 3 jets est l’élément de matrice (1,5) de M3.

On a:

M3equals.png


La probabilité de faire un Yam’s est donc :

P(Yams) = 347 897 / 7 558 272 ≈ 4,603%

Par ailleurs, la matrice fondamentale de M est :

MFequals.png


En faisant la somme des valeurs de la première ligne de cette matrice, il est possible d’affirmer qu’en moyenne, il faut jeter les dés 11,1 fois pour faire un Yam’s.

Si vous êtes arrivé en bas de cette page en restant sain d'esprit: bravo !
eek

Annexe 1 : yams.c

Source du programme de simulation du Yam’s par la méthode de Monte-Carlo

/*
 * Yams Monte Carlo Simulation
 * Copyright 2006 by Pictor
 * Distribution is free provided this notice is not removed
 *
 */
 
#include 
#include 
#include 
#include 
 
constint NumDice= 5; // How many dice ?
constint NumTurns = 3; // How many attemps to get a Yam ?
constint NumSides = 6; // How many sides on a die ?
 
void throwDice(int NumRolled, int Dice[], long TotalFreqNumber[])
{
int i;
 
for (i=(NumDice-NumRolled); i
Dice[i] = 1 + (int)((double)rand() / ((double)RAND_MAX + 1) * NumSides);
TotalFreqNumber[Dice[i]]++;
}
}
 
int testYam(int Dice[], int* pMaxSide, int* pMaxFreq)
// Returns 1 if there is a Yam's, 0 otherwise
{
int i;
int FreqNumber[NumSides+1];
// Number of times a given number has been thrown (from 1 to 6)
 
// Compute frequency for each side
// Note: loop is from 1 to 6 rather than from 0 to 5
for (i=1; i<(NumSides+1); i++) {
FreqNumber[i] = 0;
}
 
for (i=0; i
FreqNumber[Dice[i]]++;
}
 
// Find the most frequent side and its frequency
// Returns it
*pMaxSide = 0;
*pMaxFreq = 0;
 
// Note: loop is from 1 to 6 rather than from 0 to 5
for (i=1; i<(NumSides+1); i++) {
if (FreqNumber[i] > *pMaxFreq) {
*pMaxFreq = FreqNumber[i];
*pMaxSide = i;
}
}
if (*pMaxFreq == NumDice) {
return 1;
}
else {
return 0;
}
}
 
 
int main(int argc, char* argv[])
{
int NumTrials=3600; // How many throws ?
int i, k, iTurn;
int Dice[NumDice];
int NumRollAgain;
int MaxSide;
int MaxFreq;
int NumYams;
unsigned int RandomSeed=1000;
long TotalFreqNumber[NumSides+1];
long TotalAllSides;
float YamsAvg;
float YamsStdDev;
 
if (argc > 1)
{
for (i = 1; i < argc; i++)
{
if ((strcmp(argv[i], "-t") == 0) && (i < argc))
{
NumTrials = atol(argv[++i]);
}
else
if ((strcmp(argv[i], "-r") == 0) && (i < argc))
{
RandomSeed = atol(argv[++i]);
srand(RandomSeed);
}
else
if ((strcmp(argv[i], "-h") == 0) && (i < argc))
{
printf("nSyntax : %s [-t Number of throws][-r Random seed][-h]nn", argv[0]);
exit(0);
}
 
}
}
else
{
// No arguments given: keep default values
}
 
printf("Running Yams with NumDice=%d, NumTurns=%d, NumTrials=%d, RandomSeed=%dn", NumDice, NumTurns, NumTrials, RandomSeed);
 
NumYams = 0;
// Note: loop is from 1 to 6 rather than from 0 to 5
for (i=1; i<(NumSides+1); i++) {
TotalFreqNumber[i] = 0;
}
 
for (k=0; k
 
 
iTurn = 1;
throwDice (5, Dice, TotalFreqNumber);
 
while (iTurn <= NumTurns) {
if (testYam(Dice, &MaxSide, &MaxFreq)) {
NumYams++;
break;
} else
{
// Move most frequent dice to begining of dice[] and roll again others
for (i=0; i
Dice[i] = MaxSide;
}
NumRollAgain = NumDice-MaxFreq;
throwDice (NumRollAgain, Dice, TotalFreqNumber);
iTurn++;
}
}
}
 
YamsAvg= (float)NumYams /(float)NumTrials;
// Estimate of Standard Error: see
// - “Numerical Recipes in C. The Art of Scientific Computing”, W. Press et al.,
//Cambridge University Press, p. 307 with den=1
// - “A Primer for the Monte Carlo Method”, I. Sobol, CRC Press, pp. 32-33
// (Sobol then builds "probable error" = 0.6745 x Std Err. Not used here)
YamsStdDev = sqrt(1/(float)NumTrials)*sqrt(YamsAvg*(1-YamsAvg));
 
printf("nStatistics:n");
printf("Number of Yam's : %dn", NumYams);
printf("Max rateYam's : %3.4f%%n", 100.0*(YamsAvg+YamsStdDev));
printf("Avg rateYam's : %3.4f%%n", 100.0*YamsAvg);
printf("Min rateYam's : %3.4f%%n", 100.0*(YamsAvg-YamsStdDev));
printf("Std error: %3.4f%%n", 100.0*YamsStdDev);
// Show statistics for dice rolls
TotalAllSides = 0;
for (i=1; i<(NumSides+1); i++) { // Note: loop is from 1 to 6 rather than from 0 to 5
printf("Number of %d's: %dn", i, TotalFreqNumber[i]);
TotalAllSides += TotalFreqNumber[i];
}
printf("Number of rolls : %dn", TotalAllSides);
printf("Rolls / trial: %3.4fn", (float)TotalAllSides/(float)NumTrials);
 
}

Date de création : 21/01/2006 @ 22:14
Dernière modification : 08/02/2006 @ 21:42
Catégorie : Théorie
Page lue 265259 fois

Réactions à cet article

Réaction n°2 par yeezy le 30/05/2023 @ 06:30

[url=https://www.yeezyadidas.de/]Yeezy[/url]
[url=https://www.yeezys.co/]Yeezys[/url]
[url=https://www.nikeairvapormax.us/]Nike Air Vapormax[/url]
[url=https://www.jordan-1.org/]Jordan 1[/url]
[url=https://www.air-jordan1.com/]Air Jordan 1[/url]
[url=https://www.nikejordan1.com/]Nike Jordan 1[/url]
[url=https://www.jordan-1s.com/]Jordan 1S[/url]
[url=https://www.jordan1.uk.com/]Jordan 1[/url]
[url=https://www.pandoracharms.uk.com/]Pandora Charms [/url]
[url=https://www.jordans-shoes.com/]Jordan Shoes[/url]
[url=https://www.nikejordan1.us/]Nike Jordan 1[/url]
[url=https://www.jordans-1.us/]Jordan 1[/url]
[url=https://www.jordan-shoes.us.com/]Jordan Shoes[/url]
[url=https://www.nikeuk.uk.com/]Nike UK[/url]
[url=https://www.yeezy-450.com/]Yeezy 450[/url]
[url=https://www.jordanretro4.com/]Jordan Retro 4[/url]
[url=https://www.nikeoutletstoreonlineshopping.us/]Nike Outlet Store Online Shopping[/url]
[url=https://www.yeezy.uk.com/]YEEZY[/url]
[url=https://www.adidasyeezyofficialwebsite.com/]Adidas Yeezy Official Website[/url]
[url=https://www.yeezy350.uk.com/]Yeezy 350[/url]
[url=https://www.air-jordan4.com/]Air Jordan 4[/url]
[url=https://www.yeezy-supply.com/]Yeezy Supply[/url]
[url=https://www.yeezyfoam-runner.com/]Yeezy Foam Runner[/url]
[url=https://www.yeezysofficialsite.com/]Yeezys Official Site[/url]
[url=https://www.yeezyslides.us.com/]YEEZY SLIDES[/url]
[url=https://www.ray-ban-glasses.us.com/]Ray Ban Glasses[/url]
[url=https://www.adidasuk.uk.com/]Adidas UK[/url]
[url=https://www.nflshopofficialonlinestore.com/]NFL Shop Official Online Store[/url]
[url=https://www.yeezys-slides.us.com/]Yeezy Slides[/url]
[url=https://www.yeezyadidass.us.com/]Adidas Yeezy[/url]
[url=https://www.350yeezy.us.com/]Yeezy 350[/url]
[url=https://www.yeezyy.us.com/]Yeezy[/url]
[url=https://www.yeezy350s.us.com/]Yeezy 350[/url]
[url=https://www.shoesyeezys.us.com/]Yeezy Shoes[/url]
[url=https://www.yeezys.uk.com/]Yeezys[/url]
[url=https://raybansales.us/]Ray Ban[/url]
[url=https://www.adidasyeezy.uk.com/]Adidas Yeezy[/url]
[url=https://www.yzyshoes.us.com/]Yeezy Shoes[/url]
[url=https://www.yeezy-slides.org/]Yeezy Slides[/url]
[url=https://www.yeezy-shoes.us.com/]Yeezy Shoes[/url]
[url=https://www.yeezy-700.us.com/]Yeezy 700[/url]
[url=https://www.yeezyadidas.de/]Adidas Yeezy[/url]
[url=https://www.yeezys.co/]Yeezy[/url]
[url=https://www.nikeairvapormax.us/]Air Vapormax[/url]
[url=https://www.jordan-1.org/]Nike Jordan 1[/url]
[url=https://www.air-jordan1.com/]Jordan 1[/url]
[url=https://www.nikejordan1.com/]Jordan 1[/url]
[url=https://www.jordan-1s.com/]Jordan 1[/url]
[url=https://www.jordan1.uk.com/]Jordan UK[/url]
[url=https://www.pandoracharms.uk.com/]Pandora UK[/url]
[url=https://www.jordans-shoes.com/]Jordans Shoes[/url]
[url=https://www.nikejordan1.us/]Jordan 1[/url]
[url=https://www.jordans-1.us/]Jordans 1[/url]
[url=https://www.jordan-shoes.us.com/]Jordan[/url]
[url=https://www.nikeuk.uk.com/]Nike[/url]
[url=https://www.yeezy-450.com/]Yeezy[/url]
[url=https://www.jordanretro4.com/]Jordan 4[/url]
[url=https://www.nikeoutletstoreonlineshopping.us/]Nike Outlet[/url]
[url=https://www.yeezy.uk.com/]YEEZY UK[/url]
[url=https://www.adidasyeezyofficialwebsite.com/]Adidas Yeezy[/url]
[url=https://www.yeezy350.uk.com/]Yeezy uk[/url]
[url=https://www.air-jordan4.com/]Jordan 4[/url]
[url=https://www.yeezy-supply.com/]Yeezys Supply[/url]
[url=https://www.yeezyfoam-runner.com/]Yeezy[/url]
[url=https://www.yeezysofficialsite.com/]Yeezys[/url]
[url=https://www.yeezyslides. us.com/]YEEZY[/url]
[url=https://www.ray-ban-glasses.us.com/]Ray Bans Sunglasses[/url]
[url=https://www.adidasuk.uk.com/]Adidas[/url]
[url=https://www.nflshopofficialonlinestore.com/]NFL Shop[/url]
[url=https://www.yeezys-slides.us.com/]Yeezys[/url]
[url=https://www.yeezyadidass.us.com/]Adidas Yeezys[/url]
[url=https://www.350yeezy.us.com/]Yeezy 350 V2[/url]
[url=https://www.yeezyy.us.com/]Yeezys[/url]
[url=https://www.yeezy350s.us.com/]Yeezy Boost 350[/url]
[url=https://www.shoesyeezys.us.com/]Yeezys Shoes[/url]
[url=https://www.yeezys.uk.com/]Yeezy[/url]
[url=https://raybansales.us/]Ray Bans[/url]
[url=https://www.adidasyeezy.uk.com/]Yeezy[/url]
[url=https://www.yzyshoes.us.com/]Yeezys[/url]
[url=https://www.yeezy-slides.org/]Adida s Yeezy Slides [/url]
[url=https://www.yeezy-shoes.us.com/]Yeezy[/url]
[url=https://www.yeezy-700.us.com/]Yeezy[/url]
[url=https://cheapyeezysonline.com/]Cheap Yeezys[/url]
[url=https://yeezysupplystore.com/]Yeezy Supply[/url]
[url=https://www.yeezyshoesonline.com/]Yeezy Shoes[/url]



Réaction n°1 par HL le 25/04/2014 @ 21:56

Cette méthode ne tient cependant pas compte d'un petit détail. Un joueur qui obtient 2 dés identiques au premier lancé (par exemple deux 5) et qui relance pour obtenir trois nouveaux dés identiques (par exemple trois 6 et donc toujours ses deux 5), ne va pas conserver les 5, mais il va changer pour prendre les 6.

up Haut up


Site créé avec GuppY v4.5.11 - © 2004-2005 - Licence Libre CeCILL