<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 07 Apr 1985 18:49:03 pst
From   : Nick "Coosh" Cuccia <cuccia%ucbmiro@...>
Subject: Re: Random Numbers

Hello out there...


	Hope you don't mind if I toss out my fav'rit ref on random
number generators (oops! Pseudo-...).  Check out V. 2 of Knuth's
_Art of Computer Programming_ for generation and testing methods.

	I usually use the linear congruential method:


	        x   = ax mod m
	         i+1    i
		--------------
		       m

which gives numbers in the range [0..1).  x sub i is the initial
seed, x sub (i+1) the seed used for the next call.  Note: the 
constants a and m should be relatively prime.  An example function
written in Pascal is as follows.  Another note: if a and m are
relatively prime then the period of the series generated will be
m.

--Nick Cuccia
--Computer Science Division,
--Dept. of Electrical Engineering and Computer Science,
--University of California-Berkeley
--cuccia%ucbmiro@...,
--{...}!ucbvax!cuccia

--cut here----cut here----cut here----cut here----cut here----cut here--

function Random(var x: integer): real;

const
	A = 2047;		(* = 2^11 - 1, a prime number *)
	M = 524287;		(* = 2^19 - 1, a prime number *)

begin (* random *)
    x := (A*x) mod M;		(* finding new seed value *)
    Random := x / M;		(* finding next number in series *)
end; (* function random *)
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>