Entry
TSE: Random: Number: Generator: Create: How to: How to create a random number generator?
Feb 1st, 2005 04:04
Knud van Eeden,
----------------------------------------------------------------------
--- Knud van Eeden --- 03 October 2004 - 06:22 pm --------------------
TSE: Random: Number: Generator: Create: How to: How to create a random
number generator?
---
--- cut here: begin --------------------------------------------------
// from a source code example of Sammy Mitchell
PROC PROCMathSetNumberRandomSeed( INTEGER multiplierI )
INTEGER hourI = 0
INTEGER minuteI = 0
INTEGER secondI = 0
INTEGER hundredI = 0
IF ( multiplierI == 0 )
// Randomize using system clock
GetTime( hourI, minuteI, secondI, hundredI )
multiplierI = secondI * 100 + hundredI
multiplierI = multiplierI * 0ffffh / 5999
ELSE
// Must NOT be greater than 0ffffh
multiplierI = multiplierI & 0ffffh
ENDIF
// Add 1 IF even TO make it odd
multiplierI = multiplierI | 1
SetGlobalInt( "randproc_multiplier", multiplierI )
END
//
INTEGER PROC FNMathGetNumberRandomI()
INTEGER seedI = 37584381
INTEGER multiplierI = GetGlobalInt( "randproc_multiplier" )
INTEGER resultI = 0
resultI = seedI * multiplierI
multiplierI = resultI & 0ffffh
SetGlobalInt( "randproc_multiplier", multiplierI )
resultI = resultI & 0ffff00h
resultI = resultI SHR 8
RETURN( resultI )
END
PROC Main()
INTEGER I = 0
PROCMathSetNumberRandomSeed( 0 )
REPEAT
I = FNMathGetNumberRandomI()
Warn( "random number in range between 0 and 10 = ", I MOD 10 )
Warn( "random number in range between 0 and 100 = ", I MOD 100 )
Warn( "random number in range between 0 and 1000 = ", I MOD 1000 )
Warn( "random number in range between 0 and 10000 = ", I MOD 10000 )
Warn( "random number in range between 0 and 100000 = ", I )
UNTIL FALSE
END
<F12> Main()
--- cut here: end ----------------------------------------------------
---
---
Internet: see also:
---
Math: Number: Random: Link: Overview: Can you give an overview of
links about random numbers?
http://www.faqts.com/knowledge_base/view.phtml/aid/31689/fid/1712
---
CryptGenRandom
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/seccrypto/security/cryptgenrandom.asp
----------------------------------------------------------------------