[Chicago] Throw those dice!!!!

Lewit, Douglas d-lewit at neiu.edu
Mon Aug 3 03:04:02 CEST 2015


Hey guys,

I will admit that I'm rather proud of this little Python program that I
wrote, but for values larger than 6 either the program crashes because of a
stack overflow or the program becomes really painfully SLOW!

Let me explain what this program does.  Let's say that you roll two dice.
What are all the possible sums.  If both dice land with the one-side face
up, that's a sum of 2.  If both dice land with the six-side face up, that
is 6 + 6, which gives you a sum of 12.  Then you have all the sums in
between.  Any student of statistics will tell you that these sums are NOT
all equally probable or equally likely.  For example, in the case of two
dice, the most probable sum is 7 because there are several ways to get that
sum.  First die = 3, second die = 4, {3, 4} or {4, 3} or {5, 2} or {2, 5}
or {1, 6} or {6, 1} or ..... get the idea?

But why limit ourselves to just two dice?  What about three dice?  Or four
dice?  Or five dice?  Or six dice?  Or any number of dice that we choose to
throw?

My approach works pretty well for any number of dice from 1 to 6.  Beyond 6
however, that's when I run into some real problems.

Is there an "easy" way to fix this?  Probably not, but I thought I would
check with people who are more experienced in Python than I am.

I appreciate the feedback, but may not be able to reply until next
weekend.  I'm VERY busy this week!  But still I appreciate any constructive
feedback that you can provide.

Many thanks,

Douglas Lewit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20150802/300442df/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: RollNDice.py
Type: text/x-python-script
Size: 1494 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/chicago/attachments/20150802/300442df/attachment.bin>


More information about the Chicago mailing list