This page outlines how to
calculate the Optimal Strategy and Probability tables given on the Pig
Statistics page. It assumes the reader is already familiar with the
concept of "Expected Value". The table below is a small section of the
probability table displayed in the statistics link. It again shows the
percent probability of reaching (or exceeding) 100 in "N" turns for any
given score at the start of a player's turn (Recorded Score).
Score at
Start
of <---
Intended Number of turns to reach at least 100 --->
Turn
1 2
3 4 etc.
----------------------------------------------------------------------------
105
100.0 100.0 (All scores at or above
100 have a probability)
104
100.0 100.0 (of 100 percent because
you are already there.)
103
100.0 100.0
102
100.0 100.0
101
100.0 100.0
100
100.0 100.0
99
69.4 88.8 These numbers
show the probability (in percent)
98
69.4 88.8 that you will
reach 100 (or more) in "N" turns
97
69.4 88.8 (Column
Headers) given any Recorded Score at the
96
69.4 88.8 start of your
turn (leftmost column).
95
68.6 88.2
94
66.9 87.1
93
64.4 85.2
92
61.0 82.6
91
56.7 79.0
90
53.2 75.9
etc.
76
28.9 47.6
etc.
0
0.9 1.9
The question of "Optimal Strategy" usually takes the following form.
Given that you know...
1) The number of turns that you
would like to take to get to 100 or more (Col. Headers)
2) Your recorded score (Score at
the start of your turn - extreme left column)
3) The temporary sum formed by
summing your current dice rolls.
Should you add this temporary sum to your old recorded score (giving a
new higher recorded score), or should you roll the dice again (and risk
losing all your current temporary score and possibly everything)?
For example: Assume you wish to get to 100 in 3 turns.
Also, assume you started your current turn with a recorded score of 76.
Finally, you have successfully rolled the dice to accumulate a
temporary sum of 14. The Optimal Strategy table shows that you should
roll the dice again if your temporary dice sum is 14 or less, but
should stop if your total is 15 or more. We will show why you should
stop with 15 or more (Optimal Strategy table [Row 76][Col 3]. Then
using this strategy we will show how to calculate the probability of
success. (Entry that will go in the probability table [Row
76][Col 3]. Also see the above table.)
If you know the probabilities for the leftmost "N" columns
in the probability table, then you can calculate the optimal strategy
and probability for any row in the "N + 1" column. In the table above,
we know all the values for "Number of Turns = 2" column. We will
calculate the "Stop Number" (Optimal Strategy Table) and probability of
success for Row = 76 Column Header = 3. This process can be extended by
a computer program to include all rows in a particular column. Then it
can be extended again to include the next column to the right (and the
next column to the right after that, etc.)
Calculating the
"Optimal Strategy" for this example
We first calculate the expected probability to reach 100
using this combination, and then subtract the "quit-now" win
probability. If this result is positive, then we should roll the dice.
If the result is negative, then we should quit now. For all possible
rolls of the dice, we multiple the probability of this roll by the
expected win probability found in "Number of Turns = 2" and sum the
results.
Indexing below
is [Recorded Score + Temporary dice sum + this dice role][Nbr. Turns -
1]
(1/36) * EVtable[76+14+12][2]
+ (Prob. roll 12) * 100.0 (Value from table)
(2/36) * EVtable[76+14+11][2]
+ (Prob. roll 11) *
100.0 "
(3/36) * EVtable[76+14+10][2]
+ (Prob. roll 10) * 100.0
(4/36) *
EVtable[76+14+9][2] + (Prob. roll 9) * 88.8
(5/36) *
EVtable[76+14+8][2] + (Prob. roll 8) * 88.8
(4/36) *
EVtable[76+14+7][2] + (Prob. roll 7) * 88.8
(3/36) *
EVtable[76+14+6][2] + (Prob. roll 6) * 88.8
(2/36) *
EVtable[76+14+5][2] + (Prob. roll 5) * 88.2
(1/36) *
EVtable[74+14+4][2] + (Prob. roll 4) * 87.1
(10/36) * EVtable[74][2]
+ (Prob. 1 die = 1) * 47.6
(EV from old recorded)
(1/36) *
EVtable[0][2]
(Prob. snake eyes = restart from 0) * 1.9
=
76.7
= Percent expected value if you roll dice.
-
75.9
Minus expected value if you stop now at 76 + 14 = 90
------
0.8
= Expected increase in the EV if you roll the dice
again when your temporary dice total is 14.
Now let's make a similar calculation if your temporary dice total is
one higher at 15.
(1/36) *
EVtable[76+15+12][2] + (Prob. roll 12) * 100.0
(Value from table)
(2/36) * EVtable[76+15+11][2]
+ (Prob. roll 11) *
100.0 "
(3/36) * EVtable[76+15+10][2]
+ (Prob. roll 10) * 100.0
(4/36) *
EVtable[76+15+9][2] + (Prob. roll 9) * 100.0
(5/36) *
EVtable[76+15+8][2] + (Prob. roll 8) * 88.8
(4/36) *
EVtable[76+15+7][2] + (Prob. roll 7) * 88.8
(3/36) *
EVtable[76+15+6][2] + (Prob. roll 6) * 88.8
(2/36) *
EVtable[76+15+5][2] + (Prob. roll 5) * 88.8
(1/36) *
EVtable[74+15+4][2] + (Prob. roll 4) * 88.2
(10/36) * EVtable[74][2]
+ (Prob. 1 die = 1) * 47.6
(EV from old recorded)
(1/36) *
EVtable[0][2]
(Prob. snake eyes - restart from 0) * 1.9
=
78.0
= Percent expected value if you roll dice.
-
79.0
Minus expected value if you stop now at 76 + 15 = 91
------
-
1.0
= Expected decrease in the EV if you roll the dice
again when your temporary dice total is 15.
Thus we find the expected value increases if you roll at
14, but decreases if you roll at 15. Similar calculations show positive
values for all temporary dice totals under 14 while all temporary dice
totals above 15 show negative changes in the expected value. Thus the
"Optimal Strategy" for this example is to stop rolling the dice if your
temporary score is 15 or higher. Now that we know the optimal strategy
for row = 76 col = 3, the next task is to calculate the expected
success value for this table entry.
The expected value calculation is much easier if we
precompute (e.g in the initialization routine for the program) the
following table. Values in each column show the probability of various
temporary dice totals provided you are using a strategy of rolling the
dice if your temporary sum is less than the column header (the "Stop
Number"). We leave this calculation as an exercise for the reader, and
just show a small section of the results.
Temporary
<--- "Stop Number" --->
Dice Total
4 5
etc. 15
--------------------------------------
28
.0000
.0000
.0000 Data is the probability that your
27
.0000
.0000
.0000 temporary dice total will equal the
26
.0000
.0000
.0015 total shown in the left column given
25
.0000
.0000
.0041 that your strategy is to stop rolling
24
.0000
.0000
.0082 the dice if your current temporary sum
23
.0000
.0000
.0143 from rolling the dice is equal to or
22
.0000
.0000
.0229 greater than the column header numbers.
21
.0000
.0000 .0317
20
.0000
.0000 .0422
19
.0000
.0000 .0527
18
.0000
.0000 .0616
17
.0000
.0000 .0670
16
.0000
.0008 .0683
15
.0000
.0015 .0629
14
.0000
.0023 .0000
13
.0000
.0031 .0000
12
.0278
.0316 .0000
11
.0556
.0586 .0000
10
.0833
.0856 .0000
9
.1111
.1127 .0000
8
.1389
.1397 .0000
7
.1111
.1111 .0000
6
.0833
.0833 .0000
5
.0556
.0556 .0000
4
.0278
.0000 .0000
One 1
.2778
.2855
.5116 Prob. of a single "1" at some point.
Two 1's
.0278
.0285
.0512 Prob. of "Snake eyes" at some point.
Note: All columns must add to 1.0000
Calc. hint: Col "5" is just col "4" plus a dice roll if your total = 4
The expected value that will be entered at Row = 76 Col = 3 in the
EVtable is thus the following:
.0015 *
EVtable[76+26][2] = .0015 * 100.0 + You
reached 76 + 26 = 102
.0041 * EVtable[76+25][2]
= .0041 * 100.0 + You reached 76 + 25 = 101
.0082 * EVtable[76+24][2]
= .0082 * 100.0 + You reached 76 + 24 = 100
.0143 * EVtable[76+23][2]
= .0143 * 88.8 + You reached 76 + 23 = 99
.0229 * EVtable[76+22][2]
= .0229 * 88.8 + You reached 76 + 22 = 98
.0317 * EVtable[76+21][2]
= .0317 * 88.8 + You reached 76 + 21 = 97
.0422 * EVtable[76+20][2]
= .0422 * 88.8 + You reached 76 + 20 = 96
.0527 * EVtable[76+19][2]
= .0527 * 88.2 + You reached 76 + 19 = 95
.0616 * EVtable[76+18][2]
= .0616 * 87.1 + You reached 76 + 18 = 94
.0670 * EVtable[76+17][2]
= .0670 * 85.2 + You reached 76 + 17 = 93
.0683 * EVtable[76+16][2]
= .0683 * 82.6 + You reached 76 + 16 = 92
.0629 * EVtable[76+15][2]
= .0629 * 79.0 + You reached 76 + 15 = 91
.5116 *
EVtable[76][2] = .5116 * 47.6
+ You rolled a single "1"
.0512 *
EVtable[0][2] = .0512 *
1.9 You rolled "Snake
Eyes"
-------------------------------------------
=
62.0
= The expected value found at
EVtable[row = 76][col = 3]
Finally, to calculate all the numbers found in the tables in the
statistics section, we put all of the above calculations inside the
following double loop.
for (NbrTurns =
1; NbrTurns <= 30; NbrTurns++) {
for (RecordedScore
= 0; RecordedScore <= 99; RecordedScore++) {
do the above calculations;
}
/* Repeat for all Recorded Scores */
}
/* Repeat for all Number of Turns */
Return to Pig Main Page
Web page generated via
KompoZer