[Tutor] Generating random numbers
Venkatesh Babu
venkatbabukr at yahoo.com
Fri Dec 5 03:42:20 EST 2003
Hi,
Thanks very much!!! I went thru the file random.py and
those links. My doubt is cleared.
-Venkatesh
--- Tim Peters <tim.one at comcast.net> wrote:
> [Venkatesh Babu]
> > Just wanted to clarify my point once again.
> >
> > So, do u mean to say that in a single thread, the
> > following sequence of calls are OK:
> >
> > random.gauss(50, 5)
> > random.gauss(50, 5)
> > ... Some code....
> > random.gauss(25, 4)
> > random.gauss(25, 4)
> > ... Some more code....
> > random.gauss(50, 5)
> > random.gauss(50, 5)
>
> Yes, that's what I thought you meant, and it's fine.
>
> > Because till now I was thinking that generation of
> > random numbers following a probability
> distribution
> > should maintain some history information.
>
> Virtually all methods of generating random variates
> following a particular
> distribution work by applying transformations to a
> uniform random float in
> 0.0 to 1.0. For example, to generate a random float
> uniformly from 1 to 5,
> take a random float uniformly from 0 to 1, multiply
> it by 4, then add 1. It
> doesn't need any history, it only needs to be given
> a uniform random float
> in 0 to 1 to work with.
>
> You can read the code in random.py to see that
> almost all the methods work
> "like that". Some are very subtle, and require
> difficult correctness proofs
> if you *really* want to know how they work.
>
> The gauss() method used by Python is briefly but
> nicely described here:
>
>
> http://en.wikipedia.org/wiki/Box-Muller_transform
>
> That page shows how to generate random *unit* normal
> variates given a source
> of random uniform variates in 0 to 1. Dealing with
> arbitrary mu and sigma
> is a trivial transformation beyond that (after you
> get it, multiply the
> random unit normal variate by sigma, then add mu).
> More detail can be found
> here:
>
> http://www.taygeta.com/random/gaussian.html
>
> As that page says <wink>,
>
> Finding transformations like the Box-Muller is a
> tedious process,
> and in the case of empirical distributions it is
> not possible.
>
__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/
More information about the Tutor
mailing list