[RPG] How to determine the probability of rolling various ranges of numbers on 4d10, 5d10, etc.


After realizing that my knowledge of how probabilities function has waned significantly, I'm wondering what the probability of rolling multiple 6's or higher (6-10) on four 10-sided dice, five 10-sided dice, etc. up to nine 10-sided dice.

As well, what the probability of rolling a 7 or higher, 8 or higher, 9 or higher on the same sets of dice as mentioned above.

Something like;
%chance rolling 3 of 6-10 on 4d10,
%chance rolling 3 of 7-10 on 4d10,
%chance rolling 3 of 8-10 on 4d10,
%chance rolling 3 of 9-10 on 4d10, etc.

%chance rolling 3/4/5 of 6-10 on 5d10…

I've tried creating some functions on AnyDice, but I either can't get the function(s) to work, or I fear I may be misunderstanding my results.

How do I make this work?

Best Answer

You should instruct anydice to roll a number custom dice, where the definition of the custom die includes a number of zeroes equal to the number of die-faces that do nothing, and a number of ones for number of faces which count as 'successful'. E.g. for 4d10 where dice coming up 6 or more count as successful and contribute to your final score (also known as rolling 4 dice against difficulty 6), use this:

output 4d{0,0,0,0,0,1,1,1,1,1}

This can be abbreviated by to a format Xd{0:a,1:b}, where 'X' is the number of dice, 'a' is the number of faces that give no successes, and 'b' is the number of faces that do give a success, such that a=(difficulty-1) and b=(11-difficulty). So for 4 dice at difficulty 6, it's written like this:

output 4d{0:5,1:5}

If instead you want to roll seven dice and wonder how many will come up 9-or-better, use this:

output 7d{0:8,1:2}

Now, in some systems, such as Storyteller / World of Darkness / Exalted, dice that come up with the '1' face subtract from your final score. If so, replace the first zero with a '-1'. Conversely, if dice that come up with the '10' face count as two successes, replace the final '1' with a '2', like this (when rolling 12 dice against difficulty 7):

output 12d{-1,0:5,1:3,2}

As a side note, while it's possible to roll normal d10s and give conditional counting instructions, use custom functions etc., it seems to often cause such a workload for the server that it times out without giving a result, particularly with high dice pools. The custom die format seems to avoid the timeout problem. So from now on I avoid the less efficient method and stick to the one I described above.

I've just been told that using the

output 7d(d10>=9)

format is safe (where 9 is the difficulty), and when I just tested it it worked OK, but at other times I've had timeouts with it. So it's for you to decide whether to use it for cases where you don't care about 1's and 10's.

Reading the results

Anydice provides table and graph result formats, and can offer you an 'exactly' (probability of a given specific outcome), 'at least' (probability of outcomes of this much or better) and 'at most' (probability of outcomes this low or lower) values. When playing games where there's no downside for higher success scores, you want the 'at least' scores. For games where overshooting an intended score can be dangerous, (I know of only one such game, but it doesn't use dice pools), you should look at the sum of exact probabilities of all scores in an acceptable bracket - that's your chance of getting the desired outcome.