How to create binomial tables to handle mass die rolling


Pathfinder First Edition General Discussion


Years ago I seen an article for D&D for handling massive rolling of to hit or saves. Instead of rolling 20 to hit rolls or saves you make one d100 roll and consult the table to see how many were successful

Does anyone know what equations I can plug into Excel to create tables? My DM likes using large groups and when I use entangle she sit there and roll 20 to 30 saves and I am looking for ways to speed things up


Just use a dice rolling app.

There are many that will allow you to roll 20d20. And then you can look at the individual results to see how many succeeded.

More advanced ones can even tell you if the rolls we're above a certain value.


I've tried looking for the article you're talking about and have not had much success. I'm not sure what the d100 roll would represent statistically. If you know what value is required to succeed then you can calculate how many rolls in 20 are expected to meet or beat the required value. The problem is you just get one answer per required value, there isn't another variable for the d100 roll to be based on. You could take that set of values and set them equal to a 50 on the d100 and then vary the values up and down by a certain amount but depending on your method you could end up with a pretty nonsensical table. Do you remember what the d100 was based on?

Certainly, I can easily imagine a table like what you're describing, but I haven't seen anything like it nor have I been able to locate one. All I found was an article talking about how gamers have been reading percentile dice wrong (proposed a different method that actually makes things more complicated in order to solve a non-existent problem, the way you've been reading them is fine).

Do you recall what edition of D&D this was talking about? (would help give a sense of how new or old the article is)


The basic idea here seems to be determining the odds of getting a set of good rolls or bad rolls, the chance that the saves in total will deviate from the expected result.

So, to make a very simple example, lets say they needed an 11 to save. Normally we would expect 50% to make it. We determine (I'm not actually going to figure out the real math here, someone else can do that or the opp can look up some probability theory) that there is a one third chance it will be better than expected and a one third chance that it will be worse so our very small table looks like:

DC 1-33 34-66 67-100
11 25% 50% 75%

and you would make a line for each DC (and probably have more percentage categories than just three.


LordKailas wrote:

I've tried looking for the article you're talking about and have not had much success. I'm not sure what the d100 roll would represent statistically. If you know what value is required to succeed then you can calculate how many rolls in 20 are expected to meet or beat the required value. The problem is you just get one answer per required value, there isn't another variable for the d100 roll to be based on. You could take that set of values and set them equal to a 50 on the d100 and then vary the values up and down by a certain amount but depending on your method you could end up with a pretty nonsensical table. Do you remember what the d100 was based on?

Certainly, I can easily imagine a table like what you're describing, but I haven't seen anything like it nor have I been able to locate one. All I found was an article talking about how gamers have been reading percentile dice wrong (proposed a different method that actually makes things more complicated in order to solve a non-existent problem, the way you've been reading them is fine).

Do you recall what edition of D&D this was talking about? (would help give a sense of how new or old the article is)

I was just able to find which issue of dragon magazine had it, its in issue 113


1 person marked this as a favorite.

I made an excel at one point. I can stick this on my google drive when I get home if you'd like or if I'm not clear here. It looks accurate to me, but I haven't checked it in-depth.

You'll notice that some number of successes will be statistically impossible to be able to achieve, depending on your target number or the number of rolls. I started to make a crit-20/confirm section at one point, but I'm not going to include that.

Format excel as follows:

A1 "Successes; A2 = 0; A3=1 and pull down so that the cells are numbered sequentially

B1 "%"; B2 =COMBIN(E2,A2)*(1-(21-D2)/20)^(E2-A2)*((21-D2)/20)^A2 and pull down. Excel will change the letters that the cell refers to automagically. Format these cells as a percent to make it easier to read.

D1 "Target Number"; D2 =N1; D3 =D2 and pull down. This will make each cell refer to the one above it. I do this because I can't figure out how to make only some of the cells to change in column B, as they all need to refer to their corresponding A column, but always to N1 and N2. Also, I don't care enough to fight with it.

E1 "Total Rolls"; E2 =N2; E3 =E2 and pull down. This will make each cell refer to the one above it (like in D). I do this because I can't figure out how to make only some of the cells to change in column B, as they all need to refer to their corresponding A column, but always to N1 and N2. Also, I don't care enough to fight with it.

F1 "d20"; F2 =ROUND(((G2*100)/5),0) and pull down. This is what number on the d20 that you would roll to get the number of successes in A column. You'll get some repeats. Pick the first or the last; up to you.

G1 "d100"; G2 =B2; G3 =B3+G2 and pull down. Format this as percentage with 0 decimal places. This is what number on the percent d100 (2d10) that you would roll to get the number of successes in A column. You'll get some repeats. Pick the first or the last; up to you.

H1 "d1000"; H2 =B2; H3 =B3+H2 and pull down. Format this as percentage with 1 decimal place (Alternately, you can set this to =G2*1000 and pull down, creating a custom format for ‰). This is what number on the per mille d1000 (3d10) that you would roll to get the number of successes in A column (expressed as percent with an extra place). You'll get some repeats. Pick the first or the last; up to you.

M1 "Target; M2 "Total Rolls"

You'll make your changes to target number and number of rolls on the N column. D and E columns refer to N1 and N2, respectively.

N1 Target number. This will break or not make sense for values over 20 or below 2.

N2 Number of rolls to make. Number of NPCs that you're rolling for, presumably. You'll get a lot of #NUM! if you drag down more columns than you have rolls, but it won't hurt anything.


1 person marked this as a favorite.
Claxon wrote:

Just use a dice rolling app.

There are many that will allow you to roll 20d20. And then you can look at the individual results to see how many succeeded.

More advanced ones can even tell you if the rolls we're above a certain value.

I'm pretty sure this is the best way to go. This site, for example, lets you roll a bunch of dice, comparing to a target number.

So as an example, if I wanted to roll 100 saving throws with DC 14, I would enter "100d20e14" and it will tell me, say, "34 | 20s: 7, ones: 12" which means that (a) there were 34 successes, (b) 7 of those successes were 20s, and (c) 12 of the failures were 1s.

If there's a way of doing 100 rolls of 1d20+5 vs 16, I don't see it other than as doing 100 rolls of 1d20 vs 11, but still, that's probably cleaner than having to muck around with probability tables.

Disclaimer: site found with a few minutes on google, and not thoroughly vetted.


1 person marked this as a favorite.

This is a Poisson distribution, and the table would be horribly complex because you'd need a different one for each probability and each number of rolls, ie 8d20 and 11d20 would be different tables even for the same DC13, and 8d20/DC13 is different to 8d20/DC14.

For large n, it approaches a Gaussian, but the required n depends on the DC (more extreme -> larger n). Messy.

So yes, just use a dice roller app, or a couple of lines of Python.

import random, sys
print(sum([random.randint(1,20) >= int(sys.argv[2]) for x in range(int(sys.argv[1]))]))


<Nitpick>
While I am not an expert in statistics, I am quite sure it's a binomial distribution, not a Poisson distribution, essentially because the number of people making saves is assuredly finite.
</Nitpick>


1 person marked this as a favorite.

I'm just going to point out that this isn't a good idea. While you could use averages or whatever other statistical derivation you wish to use to say how many creatures save, it won't tell you which creatures save. And at the end of the day, which creatures save is much more important than how many. Especially if you keep applying area of effect spells to the same group of creatures.

Like say if you cast Entangle, Slow, and Fireball. If you hit 30 creatures its more important for the ones that save vs entangle to be slowed than the ones that failed. And you hope the damage is concentrated on the creatures that are able to get into melee. But without rolling individually there is no fair way to determine this.


Meirril wrote:
I'm just going to point out that this isn't a good idea. While you could use averages or whatever other statistical derivation you wish to use to say how many creatures save, it won't tell you which creatures save. And at the end of the day, which creatures save is much more important than how many. Especially if you keep applying area of effect spells to the same group of creatures.

The reason for using things like binomial tables is for when you have a large group of functionally identical creatures. If there are 100 archers up on that ridge line firing at you, you don't really care if Albert hit you and Bob missed or if Bob hit and Albert missed.

Now, these days it's easier to use dice software to do a mass roll rather than simulating it with a binomial table, but they end up working the same.

There are a number of ways of distributing multiple effects. The most basic being to divide up the group as effects are applied. So, for your example, you do a mass roll with all of them for the entangle, followed by two rolls for the slow and four rolls for the fireball. That's still much less rolling than rolling all 90 saves.


Pathfinder does have the Troop Subtype and Mass Combat.


1 person marked this as a favorite.
huggin wrote:
I was just able to find which issue of dragon magazine had it, its in issue 113

Ah ok, wierdly I recognize the cover to that one. I've uploaded the relevant pages here for anyone that's interested. It seems like a useful table. Though it takes a little bit to wrap your head around.


To answer your question. The way these tables were developed the author calculated the inclusive probably for a given number of results and simply stacked them into a table.

For example. lets roll a d4 2 times. The odds of rolling any specific combination of dice (say 2, 4s) is given by 0.25 x 0.25 = 0.0625 in order to determine a particular chance of a given value we just need to determine how many combinations result in that value and multiply by 0.0625. We can use this information to build a table as follows. Where the row represents "hits" and each column is a target number

Column 1 (1 or better)
2 = 16 x 0.0625 = 1
1 = 0 x 0.0625 = 0
0 = 0 x 0.0625 = 0

Column 2 (2 or better)
2 = 9 x 0.0625 = 0.5625
1 = 6 x 0.0625 = 0.375
0 = 1 x 0.0625 = 0.0625

Column 3 (3 or better)
2 = 4 x 0.0625 = 0.25
1 = 8 x 0.0625 = 0.5
0 = 4 x 0.0525 = 0.25

Column 4 (4 or better)
2 = 1 x 0.0625 = 0.0625
1 = 4 x 0.0625 = 0.25
0 = 11 x 0.0625 = 0.6875

Then, you simply stack the values in an order that is sensical, in this case we will take the inverse of the top value (2 hits) to get the first percentage, then we subtract the value for subsequent percentages to build out the rest of the table. We will leave out the 0 result because subtracting this result will always give you a 0.

Column 1 (1 or better)

2 = 00
1 = 00

Column 2 (2 or better)

2 = 44
1 = 07

Column 3 (3 or better)

2 = 75
1 = 25

Column 4 (4 or better)

2 = 94
1 = 69

Using this method you can create a similar table for whatever parameters you desire.


1 person marked this as a favorite.
Glendwyr wrote:
Claxon wrote:

Just use a dice rolling app.

There are many that will allow you to roll 20d20. And then you can look at the individual results to see how many succeeded.

More advanced ones can even tell you if the rolls we're above a certain value.

I'm pretty sure this is the best way to go. This site, for example, lets you roll a bunch of dice, comparing to a target number.

So as an example, if I wanted to roll 100 saving throws with DC 14, I would enter "100d20e14" and it will tell me, say, "34 | 20s: 7, ones: 12" which means that (a) there were 34 successes, (b) 7 of those successes were 20s, and (c) 12 of the failures were 1s.

If there's a way of doing 100 rolls of 1d20+5 vs 16, I don't see it other than as doing 100 rolls of 1d20 vs 11, but still, that's probably cleaner than having to muck around with probability tables.

Disclaimer: site found with a few minutes on google, and not thoroughly vetted.

This is the exact website I was thinking of, I just couldn't remember the web address. Thank you!

For anyone wanting to use the website please pay attention to the dice code documentation on the right hand side that explains how to write the code snippets to get the information you want (like number of successes).

Community / Forums / Pathfinder / Pathfinder First Edition / General Discussion / How to create binomial tables to handle mass die rolling All Messageboards

Want to post a reply? Sign in.
Recent threads in General Discussion