You are on page 1of 8

Earthdawn dice roll probabilities

A. N. Other
October 26, 2010

Abstract
Regarding the question posted on StackExchange, “Earthdawn dice
roll probabilities”: Earthdawn’s dice mechanics seem complicated, but
it is still possible to pre-calculate a character’s chances. Knowing the
probability mass function of an exploding n-sided die, it is quite easy to
calculate the mean and variance at any step based on the linearity of the
expectation operator and the Bienaymé formula. We provide a table of
means and variances for steps 1 through 12 on page 2. Furthermore, it
is possible to use the operations of horizontal shifting and convolution
to pre-calculate the probability of hitting a given target number at each
step. We provide such a table on page 7 that precalculates probabilities
for target numbers 1 through 50 for steps 1 through 12.
The probability mass function (pmf) fn : N → [0, 1] of an exploding n-sided
die is given by (
0 if x ≡ 0 (mod n)
fn (x) = x
1 bn c+1
(n) otherwise
If the random variable Xn is the outcome of rolling an exploding n-sided die,
then its mean µ and variance σ 2 are given by:

X n(n + 1)
µ = E[Xn ] = xfn (x) =
x=1
2(n − 1)

and

X n(n + 1)(n(n + 7) − 2)
σ 2 = V ar[Xn ] = (x − µ)2 fn (x) =
x=1
12(n − 1)2
respectively. From these formulae, we can compute the means and variances of
exploding d6s, d8s, d10s and d12s:
die µ σ2
d6 21/5 = 4.2 266/25 = 10.64
d8 36/7 = 5.14286 708/49 = 14.449
d10 55/9 = 6.11111 1540/81 = 19.0123
d12 78/11 = 7.09091 2938/121 = 24.281
Adding a constant c to a dice roll X shifts the graph of its pmf c units to
the right. In Precalculus, we learn that the result of horizontally shifting the

1
graph of a function, f (x), c units to the right is the function g(x) = f (x − c).
Therefore, the pmf of the dice roll X + c, where c is a constant, is the function
f (x − c) where f is the pmf of the dice roll X .
If f and g are the pmfs of any two dice rolls X and Y , the pmf of the sum
of these two dice rolls, Z = X + Y , is given by the convolution:

X
(f ∗ g)(x) = f (y)g(x − y)
y=−∞

The convolution operator ∗ is commutative, associative, distributive, and asso-


ciative with scalar multiplication.
If X and Y are two independent random variables and a,b, and c are con-
stants, then E[aX + bY + c] = aE[X] + bE[Y ] + c from the linearity of the
expectation operator. And V ar[aX + bY + c] = a2 V ar[X] + b2 V ar[Y ] (this is
called the Bienaymé formula). If you’re only interested in calculating the means
and variances of each step in Earthdawn, they can be calculated from these two
formulae and the means and variances in the previous table:
Step Dice Throw µ σ2
1 d6-3 6/5 266/25
2 d6-2 11/5 266/25
3 d6-1 16/5 266/25
4 d6 21/5 266/25
5 d8 36/7 708/49
6 d10 55/9 1540/81
7 d12 78/11 2938/121
8 2d6 42/5 532/25
9 d8 + d6 327/35 30734/1225
10 2d8 72/7 1416/49
11 d10 + d8 709/63 132808/3969
12 2d10 110/9 3080/81
... ...
The means increase monotonically with the step. So while it’s technically
possible to succeed with a low step number and yet fail on a high step number,
the probability of succeeding on a high step is still greater than on a low step.
Note that the mean of step number s is approximately s+δ where δ ranges from
0.09091 to 0.4. So that’s a real easy way to memorize it. The variances are the
same from steps 1 to 4; they increase at each step from 4 to 12 except going
from step 7 to step 8, because step 7 is a roughly uniform distribution (wide
variance) and step 8 is a roughly triangular distribution (narrower variance).
Explanation of how to calculate means and variances at higher
steps.
Because of the linearity of the expectation operator, means are additive.
Note that the mean of step 9 (d8+d6) is just the mean of step 4 (d6) plus the
mean of step 5 (d8). Ditto for variances.
If you need the spread (standard deviation), then just take the square root
of the variance. But note that unlike variances, standard deviations are not

2
additive.
Example of how to compute the odds of achieving a given target
number.
To calculate the chance of success at a step s against a target number t, you
have two main choices:
First, you can approximate your chances using the mean and variance. To do
this you can use a normal approximation with an integer correction. However,
this method is not so great, especially when only one die is thrown. But it
improves as more dice are rolled together. Basically, you find the area under a
standard normal curve from t−0.5−µσ to ∞. If you use a standard normal table,
be sure to take the complement of the tabled entry. By “integer correction,” I
just mean subtract a half from t (as shown) to correct for using a continuous
distribution to estimate a discrete distribution.
Second, you can calculate the probability exactly, by working out the pmf
fs , using the techniques in this paper. If the random variable X represents the
outcome of throwing
P∞ the dice for step s, then the probability of rolling t or more
is P r[X ≥ t] = x=t fs (x). Practically, you only need to work out the partial
sum, with say 100 terms, because it converges so quickly. This is the method I
recommend. Its more trouble than the normal approximation, but its also more
exact.
Lets work out an actual example, using step 9 (d8 + d6). We’ll do the
calculations in Mathematica. Any CAS will do (e.g., Axiom, Maxima, Sage, ...,
even a TI-89 calculator). You could do it manually, but using a CAS makes it
fast, easy and accurate.
Step 1. Type in the general pmf for an exploding n-sided die:

Pmf[n , x ]:=If[x ≤ 0kMod[x, n] == 0, 0, n∧ − (Floor[x/n] + 1)]

Step 2. Next, type in the pmf for step 9 (d8 + d6) which we get by
convolving the pmf of an exploding d8 with the pmf of an exploding d6. We’re
only going to use a partial sum with 100 terms:

D6D8[x ]:=Sum[Pmf[6, y]Pmf[8, x − y], {y, 1, 100}]

Remember, the pmf at x tells you the probability of rolling exactly an x.


Here’s a plot of this pmf for x ∈ {1, . . . , 50}. You can output this with
ListPlot[Table[D6D8[t], {t, 50}]]:

3
Step 3. Next, type in the expression for the probability of hitting the target
number t or more. This is just the pmf we just calculated summed from x = t
to ∞, but again we’re only going to use a partial sum with 100 terms:

ProbabilityOfTargetOrMore[t ]:=Sum[D6D8[x], {x, t, 100}]

Here is the plot of the probability of hitting the target number t or more, where t
ranges from 1 to 50. You can output this with ListPlot[Table[ProbabilityOfTargetOrMore[t], {t, 50}]]:

Now lets compare these results to a normal approximation with integer cor-
rection. To get these approximations for targets in the range 1 to 30 and convert

4
them to decimal, use these commands:

µ:=327/35
σ:=Sqrt[30734/1225]
(1 − CDF[NormalDistribution[µ, σ], #])&/@Range[30]//N

(We took the numbers for the mean and variance of step 9 right off the table
on page 2.)
Now lets put together the results of both methods. In the following table, the
first column shows the target number; it ranges from 1 to 30. The second column
shows the result of approximating the pmf using the 100-term partial sum of
the convolution of pmfs for exploding d8 and d6. The third column shows the
normal approximation with integer correction. And the fourth column shows
the difference between columns 2 and 3:
Target ProbabilityOfTargetOrMore Normal Approx. Difference
1 1. 0.961254 0.0387456
2 1. 0.941301 0.0586992
3 0.979167 0.914053 0.0651138
4 0.9375 0.878293 0.0592067
5 0.875 0.833191 0.0418089
6 0.791667 0.778521 0.0131458
7 0.6875 0.714834 -0.0273339
8 0.583333 0.643533 -0.0601992
9 0.475694 0.566815 -0.091121
10 0.385417 0.487486 -0.102069
11 0.309896 0.40865 -0.0987546
12 0.249132 0.333357 -0.0842248
13 0.203125 0.264247 -0.0611216
14 0.175347 0.203283 -0.0279355
15 0.144387 0.151599 -0.00721282
16 0.116319 0.10949 0.00682908
17 0.0907118 0.0765182 0.0141936
18 0.0701678 0.051706 0.0184619
19 0.054362 0.0337614 0.0206006
20 0.043873 0.0212892 0.0225838
21 0.0351321 0.012958 0.0221741
22 0.0291522 0.00760975 0.0215424
23 0.0232567 0.00431013 0.0189465
24 0.0182051 0.0023537 0.0158514
25 0.0139431 0.00123886 0.0127043
26 0.0108929 0.00062834 0.0102646
27 0.00841883 0.000307017 0.00811182
28 0.00668975 0.00014449 0.00654526
29 0.00525957 0.0000654848 0.00519409
30 0.00425488 0.0000285758 0.0042263
The normal approximation is closet at target number 16, then it starts to

5
produce inaccurate results, which get progressively worse.
Grand Finale. Now we have everything we need to know in order to pro-
duce a table showing the probability of hitting a target number t ∈ {1, . . . , 50}
for steps s ∈ {1, . . . , 12}:

Pmf[n , x ]:=If[x ≤ 0kMod[x, n] == 0, 0, n∧ − (Floor[x/n] + 1)]


Step1[t ]:=Sum[Pmf[6, x + 3], {x, t, 100}]
Step2[t ]:=Sum[Pmf[6, x + 2], {x, t, 100}]
Step3[t ]:=Sum[Pmf[6, x + 1], {x, t, 100}]
Step4[t ]:=Sum[Pmf[6, x], {x, t, 100}]
Step5[t ]:=Sum[Pmf[8, x], {x, t, 100}]
Step6[t ]:=Sum[Pmf[10, x], {x, t, 100}]
Step7[t ]:=Sum[Pmf[12, x], {x, t, 100}]
Step8[t ]:=Sum[Sum[Pmf[6, y]Pmf[6, x − y], {y, 1, 100}], {x, t, 100}]
Step9[t ]:=Sum[Sum[Pmf[6, y]Pmf[8, x − y], {y, 1, 100}], {x, t, 100}]
Step10[t ]:=Sum[Sum[Pmf[8, y]Pmf[8, x − y], {y, 1, 100}], {x, t, 100}]
Step11[t ]:=Sum[Sum[Pmf[10, y]Pmf[8, x − y], {y, 1, 100}], {x, t, 100}]
Step12[t ]:=Sum[Sum[Pmf[10, y]Pmf[10, x − y], {y, 1, 100}], {x, t, 100}]
(Through[{Identity, Step1, Step2, Step3, Step4, Step5, Step6, Step7,
Step8, Step9, Step10, Step11, Step12}[#]])&
/@Range[50]//N //MatrixForm

These instructions produce the desired table of probabilities:

6
Target Step1 Step2 Step3 Step4 Step5 Step6 Step7 Step8 Step9 Step10 Step11 Step12
1. 0.5 0.666667 0.833333 1. 1. 1. 1. 1. 1. 1. 1. 1.
2. 0.333333 0.5 0.666667 0.833333 0.875 0.9 0.916667 1. 1. 1. 1. 1.
3. 0.166667 0.333333 0.5 0.666667 0.75 0.8 0.833333 0.972222 0.979167 0.984375 0.9875 0.99
4. 0.166667 0.166667 0.333333 0.5 0.625 0.7 0.75 0.916667 0.9375 0.953125 0.9625 0.97
5. 0.138889 0.166667 0.166667 0.333333 0.5 0.6 0.666667 0.833333 0.875 0.90625 0.925 0.94
6. 0.111111 0.138889 0.166667 0.166667 0.375 0.5 0.583333 0.722222 0.791667 0.84375 0.875 0.9
7. 0.0833333 0.111111 0.138889 0.166667 0.25 0.4 0.5 0.583333 0.6875 0.765625 0.8125 0.85
8. 0.0555556 0.0833333 0.111111 0.138889 0.125 0.3 0.416667 0.472222 0.583333 0.671875 0.7375 0.79
9. 0.0277778 0.0555556 0.0833333 0.111111 0.125 0.2 0.333333 0.37963 0.475694 0.5625 0.65 0.72
10. 0.0277778 0.0277778 0.0555556 0.0833333 0.109375 0.1 0.25 0.305556 0.385417 0.46875 0.5625 0.64
11. 0.0231481 0.0277778 0.0277778 0.0555556 0.09375 0.1 0.166667 0.25 0.309896 0.386719 0.473437 0.55
12. 0.0185185 0.0231481 0.0277778 0.0277778 0.078125 0.09 0.0833333 0.212963 0.249132 0.316406 0.395312 0.47
13. 0.0138889 0.0185185 0.0231481 0.0277778 0.0625 0.08 0.0833333 0.166667 0.203125 0.257812 0.326875 0.398
14. 0.00925926 0.0138889 0.0185185 0.0231481 0.046875 0.07 0.0763889 0.12963 0.175347 0.210937 0.268125 0.334
15. 0.00462963 0.00925926 0.0138889 0.0185185 0.03125 0.06 0.0694444 0.099537 0.144387 0.175781 0.219062 0.278
16. 0.00462963 0.00462963 0.00925926 0.0138889 0.015625 0.05 0.0625 0.0763889 0.116319 0.152344 0.179687 0.23
17. 0.00385802 0.00462963 0.00462963 0.00925926 0.015625 0.04 0.0555556 0.0601852 0.0907118 0.125 0.15 0.19
18. 0.00308642 0.00385802 0.00462963 0.00462963 0.0136719 0.03 0.0486111 0.0509259 0.0701678 0.101562 0.131562 0.158
19. 0.00231481 0.00308642 0.00385802 0.00462963 0.0117187 0.02 0.0416667 0.0393519 0.054362 0.0812988 0.11168 0.134
20. 0.00154321 0.00231481 0.00308642 0.00385802 0.00976562 0.01 0.0347222 0.0300926 0.043873 0.064209 0.0931641 0.118
21. 0.000771605 0.00154321 0.00231481 0.00308642 0.0078125 0.01 0.0277778 0.0226337 0.0351321 0.050293 0.0758594 0.1
22. 0.000771605 0.000771605 0.00154321 0.00231481 0.00585937 0.009 0.0208333 0.0169753 0.0291522 0.0395508 0.0610156 0.084
23. 0.000643004 0.000771605 0.000771605 0.00154321 0.00390625 0.008 0.0138889 0.0131173 0.0232567 0.0319824 0.0485078 0.0697
24. 0.000514403 0.000643004 0.000771605 0.000771605 0.00195312 0.007 0.00694444 0.0110597 0.0182051 0.0275879 0.0383359 0.0571
25. 0.000385802 0.000514403 0.000643004 0.000771605 0.00195312 0.006 0.00694444 0.00848765 0.0139431 0.0224609 0.0305 0.0462

7
26. 0.000257202 0.000385802 0.000514403 0.000643004 0.00170898 0.005 0.00636574 0.00643004 0.0108929 0.0180664 0.0251953 0.037
27. 0.000128601 0.000257202 0.000385802 0.000514403 0.00146484 0.004 0.00578704 0.00477966 0.00841883 0.0142822 0.020835 0.0295
28. 0.000128601 0.000128601 0.000257202 0.000385802 0.0012207 0.003 0.00520833 0.00353652 0.00668975 0.0111084 0.0177705 0.0237
29. 0.000107167 0.000128601 0.000128601 0.000257202 0.000976562 0.002 0.00462963 0.00270062 0.00525957 0.00854492 0.0147324 0.0196
30. 0.0000857339 0.000107167 0.000128601 0.000128601 0.000732422 0.001 0.00405092 0.00227195 0.00425488 0.0065918 0.012002 0.0172
31. 0.0000643004 0.0000857339 0.000107167 0.000128601 0.000488281 0.001 0.00347222 0.00173611 0.00334111 0.00524902 0.00956348 0.0145
32. 0.0000428669 0.0000643004 0.0000857339 0.000107167 0.000244141 0.0009 0.00289352 0.00130744 0.00262928 0.0045166 0.00754199 0.0121
33. 0.0000214335 0.0000428669 0.0000643004 0.0000857339 0.000244141 0.0008 0.00231481 0.000964506 0.00201349 0.00366211 0.005925 0.00996
34. 0.0000214335 0.0000214335 0.0000428669 0.0000643004 0.000213623 0.0007 0.00173611 0.000707305 0.00156255 0.00292969 0.00473691 0.00808
35. 0.0000178612 0.0000214335 0.0000214335 0.0000428669 0.000183105 0.0006 0.00115741 0.000535837 0.00119703 0.00230026 0.00377937 0.00646
36. 0.000014289 0.0000178612 0.0000214335 0.0000214335 0.000152588 0.0005 0.000578702 0.000450103 0.000938028 0.00177383 0.00309631 0.0051
37. 0.0000107167 0.000014289 0.0000178612 0.0000214335 0.00012207 0.0004 0.000578702 0.000342936 0.000729784 0.0013504 0.00252905 0.004
38. 7.144490119949525`*∧ -6 0.0000107167 0.000014289 0.0000178612 0.0000915527 0.0003 0.000530477 0.000257202 0.000590802 0.00102997 0.00211274 0.00316
39. 3.5722450353587615`*∧ -6 7.1444901101031244`*∧ -6 0.0000107167 0.000014289 0.0000610351 0.0002 0.000482252 0.000188734 0.000462738 0.00081253 0.00172043 0.00258
40. 3.5722450353587615`*∧ -6 3.572245025512361`*∧ -6 7.1444901101031244`*∧ -6 0.0000107167 0.0000305176 0.0000999999 0.000434026 0.000137531 0.00036215 0.000698089 0.00138025 0.00226
41. 2.9768708545936343`*∧ -6 3.572245025512361`*∧ -6 3.572245025512361`*∧ -6 7.144490051024722`*∧ -6 0.0000305176 0.0000999999 0.000385801 0.000103595 0.000275799 0.000564575 0.00109062 0.0019
42. 2.381496673828507`*∧ -6 2.9768708447472338`*∧ -6 3.572245025512361`*∧ -6 3.5722449664339584`*∧ -6 0.0000267029 0.0000899999 0.000337576 0.0000869246 0.000212287 0.000450134 0.000867113 0.00158
43. 1.7861224930633798`*∧ -6 2.3814966639821066`*∧ -6 2.9768708447472338`*∧ -6 3.5722449664339584`*∧ -6 0.0000228882 0.0000799999 0.00028935 0.0000660865 0.000161685 0.000351906 0.00068367 0.001295
44. 1.1907483122982524`*∧ -6 1.7861224832169792`*∧ -6 2.3814966639821066`*∧ -6 2.9768707856688312`*∧ -6 0.0000190735 0.0000699999 0.000241125 0.0000494161 0.000127077 0.00026989 0.000545788 0.001045
45. 5.953741315331252`*∧ -7 1.190748302451852`*∧ -6 1.7861224832169792`*∧ -6 2.381496604903704`*∧ -6 0.0000152588 0.0000599999 0.0001929 0.0000361194 0.0000987396 0.000204086 0.00043363 0.000829995
46. 5.953741315331252`*∧ -7 5.953741216867247`*∧ -7 1.190748302451852`*∧ -6 1.7861224241385767`*∧ -6 0.0000114441 0.0000499999 0.000144674 0.0000261965 0.0000794318 0.000154495 0.000351592 0.000649995
47. 4.96145101405604`*∧ -7 5.953741216867247`*∧ -7 5.953741216867247`*∧ -7 1.1907482433734495`*∧ -6 7.629387255292386`*∧ -6 0.0000399999 0.0000964491 0.0000196473 0.000061861 0.000121116 0.000283803 0.000504995
48. 3.9691607127808274`*∧ -7 4.961450915592035`*∧ -7 5.953741216867247`*∧ -7 5.953740626083222`*∧ -7 3.814689989667386`*∧ -6 0.0000299999 0.0000482238 0.000016472 0.0000480968 0.00010395 0.00023378 0.000394995
49. 2.976870411505615`*∧ -7 3.9691606143168234`*∧ -7 4.961450915592035`*∧ -7 5.953740626083222`*∧ -7 3.814689989667386`*∧ -6 0.0000199999 0.0000482238 0.0000125029 0.0000364842 0.0000839231 0.000188827 0.000319995
50. 1.9845801102304033`*∧ -7 2.976870313041611`*∧ -7 3.9691606143168234`*∧ -7 4.96145032480801`*∧ -7 3.337852831464261`*∧ -6 9.9999`*∧ -6 0.000044205 9.32752475557722`*∧ -6 0.0000281731 0.000066757 0.000152138 0.000279995
Conclusion. Without resorting to brute force methods (i.e., enumerating
all outcomes with a spreadsheet or computer program), it is possible to compute
the mean and variances of each step in Earthdawn, based on the linearity of the
expectation operator and the Bienaymé formula.
Furthermore, using the pmfs of exploding n-sided dice plus the operations of
horizontal shifting and convolution, it is possible to produce analytic formulae
for the pmfs of the dice rolls for all steps in Earthdawn.
These analytic formulae may be approximated quickly using a CAS like
Mathematica in order to calculate the chance of success for any step and any
target number.

You might also like