Comparison with False - something I don't understand
Tim Harig
usernet at ilthio.net
Sun Dec 5 01:56:59 EST 2010
On 2010-12-05, Paul Rubin <no.email at nospam.invalid> wrote:
> Tim Harig <usernet at ilthio.net> writes:
>> A friend was trying to derive a mathematical formula for determining
>> the possibly distribution of results from rolling arbitrariy numbers
>> of m n-sided dice
>
> http://en.wikipedia.org/wiki/Multinomial_distribution
I sure he rediscovered much of that. Working that out for himeself was
probably far more educational then simply reading an article on the
solution.
>> To generate a listing of all (non-uniq) possible roles, I would call
>> the first dices increment method read and read the dice faces into a
>> log until the first dice threw an exception that it could not be
>> further incremented. Then I would call reset() on the first dice and
>> increment the second and so on much like the odometer of a car.
>
> from itertools import product
> m, n = 5, 2
> for roll in product(*(xrange(1,m+1) for i in xrange(n))):
> print roll
The fact that I bothered to create classes for the dice and roles, rather
then simply iterating over a list of numbers, should tell you that I
produced was of a far more flexible nature; including the support for
roles with dice having different numbers of sides. I basically created
a DSL that he could use to generate and automatically calculate the
properties of series of roles defined by one or more varying property.
I merely posted a simplied description of the dice-role objects because I
thought that it demonstrated how exceptions can provide eligance of control
for situations that don't involve what would traditionally be defined as an
error.
More information about the Python-list
mailing list