Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Keep this in mind

by Fletch (Bishop)
on Oct 23, 2001 at 04:36 UTC ( [id://120668]=note: print w/replies, xml ) Need Help??


in reply to srand and seed

Anyone who considers arithmetical methods of producing random numbers is, of course, in a state of sin. -- John von Neumann

The problem with calling it repeatedly is that you're not really making things any more random. rand only produces pseudorandom numbers based on the seed. You're not increasing the amount of entropy you're going to get out of it by multiple calls. In fact, if you're using things such as the process id in the seed you might even be reducing it (since the seeds could be `close' and put the generator in states that could overlap).

Think of it this way: you've got a big book with pages full of numbers. srand tells what page in the book that rand should start reading from. Repeated calls to srand won't put any more randomness into the book, and might start reading numbers from pages you've already read.

If you're really concerned about the randomness of your numbers then you want to forget rand all together and look into Math::TrulyRandom, or Crypt::Random if you have a /dev/random device available on your OS.

Replies are listed 'Best First'.
Re: srand calls
by tenya (Beadle) on Nov 04, 2001 at 00:43 UTC
    I am doing a Monte Carlo simulation; it does 100 trials. Each trial takes 30 seconds. I call rand 2e7 times during each trial. I need uniform random numbers; duplicates are ok. The random numbers are a population to draw from (I am modeling sampling error) and a source for the Perl Cookbook Gausian Random number generator (I am also modeling measurement error) Should I call srand between trials? It seems that 30s is enough time for the source of the seed to change. Will the quality of the random numbers degrade after too many calls (e.g., 2e9 calls?)? I use active perl with win2000 so Math::TrulyRandom is not an option for me.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://120668]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2024-04-23 20:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found