On Tuesday, March 18, 2014 11:59:49 PM UTC-5, Ethan Anderes wrote: > > My main goal is to test MCMC code on independently generated data. I > guess I'm worried that if I start one run with srand(1) and the next with > stand(2) there will be an overlap on the random number sequence that could > cause problems. This is essentially due to my ignorance on how these > work.... >
The good news is that this fear is unfounded. I think there's a tendency to choose "psychologically random" numbers as PRNG seeds--I do it too--but there's no real reason for it. I'd say that if you're serious about doing simulation, you'll find a basic understanding of the mechanism behind pseudorandom number generation to be extremely helpful. It will help not only in this situation--understanding how a seed is stretched into a state vector (in Mersenne Twister, this is typically done with a different PRNG)--but also in knowing the tradeoffs in the algorithms. Story time: I was experiencing random errors on an 8-bit microcontroller using C code generated from a Stateflow/Simulink diagram. Turns out that I was using up the majority of the system's memory for the state vector of the PRNG (which by default, is Mersenne Twister), and was experiencing memory corruption from other parts of the program. I replaced the PRNG, which has a period of 19937, with a fixed vector of numbers generated offline with a period of about 10. For the application, that was acceptable!