Probability Problem
Elliot Temple
curi at curi.us
Mon Apr 24 22:19:22 EDT 2006
Problem: Randomly generate 10 integers from 0-100 inclusive, and sum
them. Do that twice. What is the probability the two sums are 390 apart?
I have code to do part of it (below), and I know how to write code to
do the rest. The part I have calculates the number of ways the dice
can come out to a given number. The problem is the main loop has 9
iterations and it takes about 2.5 minutes to begin the 4th one, and
each iteration is about 101 times longer than the previous one. So:
>>> x = 2.5 * 101**6
>>> x /= (60*24*365.25)
>>> x
5045631.5622908585
It'd take 5,000 millennia. (If my computer didn't run out of memory
after about 4 minutes, that is.)
Any suggestions? Either a way to do the same thing much more
efficiently (enough that I can run it) or a different way to solve
the problem.
Code:
li = range(101)
li2 = []
range101 = range(101)
for x in xrange(9):
print "x is %s" % x
li2 = []
for y in li:
for z in range101:
li2 += [y+z]
li = li2
print li.count(800)
# prints how many ways the dice can add to 800
This link may help:
http://www.math.csusb.edu/faculty/stanton/m262/intro_prob_models/
calcprob.html
-- Elliot Temple
http://www.curi.us/blog/
More information about the Python-list
mailing list