Random number generator can't repeat.
Original Reporter info from Mantis: FPCCore
-
Reporter name: FPC core team
Original Reporter info from Mantis: FPCCore
- Reporter name: FPC core team
Description:
Reloading RandSeed in order to repeat a sequence of pseudorandom numbers does not work.
I have a fix:
--- fpc/rtl/inc/system.inc.O 2005-02-14 09:13:29.000000000 -0800
+++ fpc/rtl/inc/system.inc 2005-04-25 04:17:08.000000000 -0700
@@ -411,8 +411,11 @@ var
y: longint;
kk: longint;
begin
- if (mti >= MT19937N) or
- (randseed <> oldrandseed) { generate MT19937N longints at one time }
+
+ {force startover if seed changed}
+ if (randseed <> oldrandseed) then mti := MT19937N + 1;
+
+ if (mti >= MT19937N) { generate MT19937N longints at one time }
then begin
if mti = (MT19937N+1) then // if sgenrand_MT19937() has not been called,
begin
Additional information:
Reporter: Michael Deutschmann
EMail: michael at talamasca dot ocis dot net
Mantis conversion info:
- Mantis ID: 5877
- OS: Linux
- Version: 1.9.8
- Fixed in version: 2.0.2