On 6 dec 2003, at 20:26, jordi wrote:
Randomize initialises the random number generator based on the current system time. So if you call it multiple times in a short time period, you will get a similar (or even the same) randseed.
With this, you have answered perfectly my question, to get a diferent sequence can I set randseed in a diferent way?
There are no different sequences. All pseudo-random generators have one circular sequence. The better the generator, the longer this sequence is.
for example:
Procedure set_new_random_seed; begin randseed := who knows yet... end;
For loop := 1 to 100 do begin set_new_random_seed; writeln (random (1000) +1); end;
You mean you want to write something like the "first" random number of 100 "different sequences"?
Thank you very much.
Note that you *cannot* save randseed in the middle of a sequence, and later restore it again to continue that particular sequence. The reason is that the random generator internally uses 3 random seeds (in 1.0.x) and several more in 1.1. If you change randseed, the random generator is reinitialised with this new seed, but the resulting sequence is different from what you would have gotten if you just continued previously (since only one of the randseeds is initialised by you, the rest is based on that one value).
This is different from TP/Delphi, which use only one randseed, so saving/restoring this one randseed is enough to save/restore the whole of the random generator. However, it still allows for perfectly reproducible random number sequences (if you set randseed to 5, print some random number and then set randseed again to 5, the following numbers will be the same as the first ones, because the newly calculated state will be the same as the first one).
Jonas
_______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal