Re: Dice Function

From: Smith, David (Lynchburg) (
Date: 07/08/02

Sent: Monday, July 08, 2002 12:32 PM

>Die emulation is a relatively
>cheap way of getting curves but one could implement
>other algorithms that do the same mapped to a
>percent or permil. You would get finer-grained
>gradiation between ability scores and the like, but
>it is a significant departure from the math behind
>DIKU and therefore Circle.

That's the truth.

        I've been tempted a few times to work forwards from the dice
definitions (1d6, 2d20, generally NdM) to the _curve_ that the dice
definition approximates. Working forwards, you get the mean and standard
deviation of the curve. Then, when a roll is required, all that needs to be
randomly generated, ever, is a % value. This % value becomes the area filled
beneath the curve. Using the %-as-area, find the mean-centered interval for
which the integral of the curve is within tolerance of the %-as-area. Bang,
you have the value rolled.

        The advantage as I see it is that it gives a smoothness to the
probability curve that dice can never achieve, only approximate. Basically
the granularity of the probability is dependent on the integration
tolerance, which can be set as fine as the mathematics package would allow.

        The overwhelming disadvantage is that the integration would be
hideously expensive. In addition, the initial %-as-area random value would
need a greater number of digits of randomness as you desired to achieve a
finer granularity (the first part of the problem seems tractable using some
caching/lookup strategy, but would then require much more storage, either
way, it hurt. the second part of the problem seemed more-or-less
intractable, with the degree based only on the granularity--thus the number
of random bytes--desired).

        Overall, it didn't seem worth it, but it would allow a
percent/permil algorithm that still allowed the basic dice-stated
probabilities to be used.

   | FAQ: |
   | Archives: |
   | Newbie List:   |

This archive was generated by hypermail 2b30 : 06/25/03 PDT