Central Limit Theorem and the Storyteller System

At several times throughout the years my go-to pencil-and-paper role playing system has been one of many titles produced by White Wolf, Inc. using the Storyteller system. I’ll do my best to keep the finer details of table top role playing out of this for those of you who are completely uninterested in such. Anyone who has played any of these games is probably familiar with the mechanic of rolling of handfuls of ten-sided dice (d10s), hoping for many dice to roll over the target number.

The threshold that determines the boundary between a success and a failure for a particular die varies from one title to another, but I’ve chosen 7, 8, 9, and 10 to count as a success. For a given number of dice to be rolled all at once, how can we determine the most likely number of successes? We’ll start with the knowledge that 4/10 of the faces of one die are a success and 6/10 are failures. So for one die it’s pretty boring. When we add more dice we also need to consider the number of possible combinations that will yield the same number of successes. For example, there are three different ways to roll one success on three dice–so the probability of this happening is  3 \cdot \frac{4}{10} \cdot \frac{6}{10}^{2} , the product of the probability of each die result and the number of ways that outcome can occur.

I’ve written a simple Python script that will calculate the probability of rolling each number of successes between zero and the number of dice being rolled for any number of dice less than or equal to 10.  The output is in a form which can be relatively easy used to make graphs or histograms. And graphing is exactly what I have done, using an open source Origin clone called QtiPlot. I’ll put some of these graphs at the bottom of the post below a cut.

Looking at the data, they look a bit surprisingly like a Gaussian or normal distribution. This is the infamous “bell curve” that always seemed to come up when worrying about grades back in high school. There is a very good reason these success rates have this shape–because of the central limit theorem. The central limit theorem says that the sum of many identically distributed random variables will approach a normal distribution as a limit. It might be a little tricky to see here, but the “sum” of successes (1) and failures (0) where each die has an identical breakdown of 4/10 successes and 6/10 failures does fit this premise, so for enough dice the distribution will be Gaussian.

In the graphs below I’ve fit each data set for 5d10 to 10d10 to a Gaussian function. The parameters we are interested in are xc and w. The first, xc, is the mean of the distribution, effectively the average number of successes one should expect from rolling that many dice. Notice that for each additional die added this increases by 0.4 almost exactly. This is what we would expect since each die will roll a success four out of ten times.

The second potentially interesting value is w, which is more commonly referred to as \sigma (lower-case sigma). This is the standard deviation of the distribution, the same value referenced in this blog title. This can also be called the “width” of the distribution, as it tells us how far away from the mean the data tends to be. For normally distributed data, within one deviation of the mean on either side is %68.27 of the data. For example, in the 10d10 plot the mean is very nearly 4 successes and the standard deviation is 3.2. So about %68 of the time one should expect between 0.8 and 7.2 successes on 10d10. Within two deviations we expect just over %95 of all events to occur, which doesn’t make too much sense in the case of our discreet, integer successes and a distribution that is only the sum of 10 or fewer random variables. Increasing the number of dice will make the data “more Gaussian”.

Use this information as you see fit. Keep in mind, though, that however much fun statistics might be, people who try to use Python scripts and graphs of Gaussian distributions to power game probably aren’t. If you haven’t already taken a peek below the fold, there are graphs that might make some of the above a little more clear. If you liked this, let me know and I’ll try to do some more gaming related statistics posts. If you didn’t, you can tell me that, too, or just link to this post on RPGnet sending a horde of obnoxious gamers after me as revenge.

Tags: , ,

4 Responses to “Central Limit Theorem and the Storyteller System”

  1. EastwoodDC Says:

    Isn’t that the same as the Binomial distribution, with n=# of dice, and p=probability of success? This gives mean = n*p and variance n*p*(1-p) .

    On a different topic, I find your blog to be very similar to what I hope mine to be (if I can ever get started). Similar down to the title, blog roll, and interest in games/ The good news is I found another blog I like to read. The bad news is now I need to find a different name for my blog. Oh well, I can handle that. :-)

  2. apfergus Says:

    @EastwoodDC: Yes! I’m somewhat ashamed that I missed the binomial distribution and jumped straight to the central limit theorem.

    And thanks for the kind words. If you get your blog rolling be sure to send me a link. This also reminds me that I need to update my blogroll to better reflect the huge number of fun science blogs in my RSS feed reader.

  3. EastwoodDC Says:

    Here is the link to my statistics and games blog:
    Giant Battling Robots

    And this is my other blog – the one I was going to call Standard Deviations – but discovery of your blog forced me to rethink that, and I came up with a name I like even better: The Dread Tomato Addiction (Thank you!)

  4. EastwoodDC Says:

    Looks like my HTML didn’t take. Here are the URLs:
    http://giantbattlingrobots.blogspot.com/
    http://dreadtomatoaddiction.blogspot.com/

Leave a Reply

You must be logged in to post a comment.