On 6 dec 2003, at 19:16, jordi wrote:
Sorry, there are a few things that I don't understand... and I am not so
good in mathematics... and I can't explain it in English quite well.
The same seed generates the same random sequence... or not?
Yes.
and why I can randomize as often as I want in the same program?
Randomize is simply a procedure, the compiler does not know it is special or so.
A loop like this generates the same numbers: for loop := 1 to 100 do begin randomize; writeln (random (1000) +1); end;
You are using random/randomize wrong here. The correct way is
randomize; for loop := 1 to 100 do begin writeln (random (1000) +1); end;
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.
How can I re-seed in the same program?
randomize; org_seed := randseed; for loop := 1 to 100 do begin writeln (random (1000) +1); end; randseed := org_seed; for loop := 1 to 100 do begin writeln (random (1000) +1); end;
Now you will get twice the same 100 numbers. Do not call randomize more than once during a program run, it will only make the numbers you get "less random".
Jonas
_______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal