[Tutor] Gaussian integer values
kevin parks
kp8 at mac.com
Wed Feb 8 09:24:52 CET 2006
hi all.
I am working with a list and would like to choose from the list
randomly but not uniformly. I am interested in several distributions
but the first one i looked at is Gaussian.
which you call like so:
random.gauss(mean, dev)
You can try this code courtesy of effbot (http://effbot.org/
librarybook/random.htm)
# File: random-example-3.py
import random
histogram = [0] * 20
# calculate histogram for gaussian
# noise, using average=5, stddev=1
for i in range(1000):
i = int(random.gauss(5, 1) * 2)
histogram[i] = histogram[i] + 1
# print the histogram
m = max(histogram)
for v in histogram:
print "*" * (v * 50 / m)
fine this works and works well...
one problem with this... if you are using this to create an index to
a list you might be in trouble as each time you run it you get a
slightly different min and max value.
so... how does one safely pick from a list of say 15 elements with a
large bias towards the center values without over or under-running
the bounds of your list?
cheers,
kevin
ps. what would be the opposite of the Gaussian distro the scoop like
one, the one where the outer elements are favored. Is that in the
python standard lib? (or numpy?)
More information about the Tutor
mailing list