# Dice Probabilities

6 replies [Last post]
omni989
Offline
Joined: 04/30/2011

Hello

Hope some1 can help. Its probably quite simple but Im not having much fun working it out.

Firstly I need to calculate the probability of rolling X number of successes on multiple D6 where 1-3 are failures, 4 & 5 are one success each and 6 is two successes. I will need to map out the probability of exactly 1 success, 2 success, 3 success etc on 2D6, 3D6, 4D6 up to 6 D6.

I'll put up secondly if the above gets sorted, want to make sure this is the right place to post this kind of stuff first

I hope I have explained that clearly and that someone will offer some solutions.

Maaartin
Offline
Joined: 05/15/2011
It's simple with a script

I can only offer a recursive formula: Let `p(s, t)` denote the probability of `s` successes in `t` tries.

• `p(0, 0) = 1`
• `p(s, 0) = 0` for `s!=0`
• `p(s, t) = 1/2 * p(s, t-1) + 1/3 * p(s-1, t-1)+ 1/6 * p(s-2, t-1)` for `t>0`

I wrote a python script which I can't paste here due to formatting problems, but here are the results:

``````      successes      0      1      2      3      4      5      6      7      8      9     10     11
0  1.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
1  0.500  0.333  0.167  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
2  0.250  0.333  0.278  0.111  0.028  0.000  0.000  0.000  0.000  0.000  0.000  0.000
3  0.125  0.250  0.292  0.204  0.097  0.028  0.005  0.000  0.000  0.000  0.000  0.000
4  0.062  0.167  0.250  0.241  0.165  0.080  0.028  0.006  0.001  0.000  0.000  0.000
5  0.031  0.104  0.191  0.231  0.204  0.135  0.068  0.026  0.007  0.001  0.000  0.000
``````
SilentFury
Offline
Joined: 10/23/2011
He needs the numbers to work

He needs the numbers to work up to 6 dice, but otherwise this is solid, and it'll be easy for you to modify it to generate the extra row.

Maaartin
Offline
Joined: 05/15/2011
OK

So the corrected script and the results:

``````p  0      1      2      3      4      5      6      7      8      9      10     11
0  1.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
1  0.500  0.333  0.167  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
2  0.250  0.333  0.278  0.111  0.028  0.000  0.000  0.000  0.000  0.000  0.000  0.000
3  0.125  0.250  0.292  0.204  0.097  0.028  0.005  0.000  0.000  0.000  0.000  0.000
4  0.062  0.167  0.250  0.241  0.165  0.080  0.028  0.006  0.001  0.000  0.000  0.000
5  0.031  0.104  0.191  0.231  0.204  0.135  0.068  0.026  0.007  0.001  0.000  0.000
6  0.016  0.062  0.135  0.197  0.211  0.174  0.113  0.058  0.023  0.007  0.002  0.000
``````

Btw., I spent much more time by formatting the output than by programming.

pelle
Offline
Joined: 08/11/2008
...and I installed python

...and I installed python on my phone about an hour ago and this was a first opportunity to test it. Your script ran fine. :)

Maaartin
Offline
Joined: 05/15/2011
Cool

I'm adding a short explanation for the formula `p(s, t) = 1/2 * p(s, t-1) + 1/3 * p(s-1, t-1)+ 1/6 * p(s-2, t-1)`:

There are three possibilities how to get `s` successes using `t` tries:

• Roll 1, 2, or 3, after having obtained `s` successes using `t-1` tries, the probability is 3/6=1/2.
• Roll 4 or 5, after having obtained `s-1` successes using `t-1` tries, the probability is 2/6=1/3.
• Roll 6, after having obtained `s-2` successes using `t-1` tries, the probability is 1/6.

That's all.

omni989
Offline
Joined: 04/30/2011
Thanks very much. Thats very

Thanks very much. Thats very helpful. perhaps i should look into Python