|


Generating Random NumbersDate: 02/24/2001 at 22:01:22 From: Rodolfo Sanchez Subject: Random Numbers Although this question pertains to a college-level course (I study engineering in Mexico), I wanted to go ahead and submit it. Would you know of any congruential models (I assume that is the translation) for the generation of random numbers? (modelo congruencial para la generacion de numeros aleatorios) Thanks for your time. Rodolfo
Date: 02/25/2001 at 15:50:41
From: Doctor Fenton
Subject: Re: Random Numbers
Hi Rodolfo,
Thanks for writing to Dr. Math. For questions like yours, I generally
turn to the book _Numerical Recipes_ by William Press, et al. It is
written in several versions for different programming languages, and I
have both the first edition in FORTRAN and the second edition in C.
The C version mentions the "minimal standard generator" of Lewis,
Goodman, and Miller which uses:
I(n+1) == a*I(n) mod m (== indicates congruence)
with
m = 2^31 - 1 = 2147483647
a = 7^5 = 1103515245
Apparently, a = 48272 and a=69621 have also been used, and all three
seem to work well.
The Fortran version gives a whole table of choices for a, c and m in:
I(n+1) == a*I(n)+c mod m
such as m = 714025, a = 1366, and c = 150889.
They also describe how to combine or "shuffle" the output of several
generators to get longer streams.
The definitive reference is Donald Knuth's _The Art of Computer
Programming: Seminumerical Algorithms_ (Volume 2).
I would recommend that you look up one of these references, since it
is easy to go wrong and generate non-random numbers.
If you have further questions, please write again.
- Doctor Fenton, The Math Forum
http://mathforum.org/dr.math/
|
Search the Dr. Math Library: |
[Privacy Policy] [Terms of Use]


Ask Dr. MathTM
© 1994-2008 The Math Forum
http://mathforum.org/dr.math/