Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.bhp.com.au!mel.dit.csiro.au!munnari.OZ.AU!news.ecn.uoknor.edu!news.ysu.edu!usenet.ins.cwru.edu!gatech!usenet.eel.ufl.edu!tank.news.pipex.net!pipex!dispatch.news.demon.net!demon!mail2news.demon.co.uk!knosof.demon.co.uk
From: Derek M Jones <derek@knosof.co.uk>
Newsgroups: comp.os.linux.development.system,comp.bugs.4bsd
Subject: Re: Random Number Generation with Linux (using BSD) and BSD
Date: Thu, 28 Mar 96 21:26:43 GMT
Organization: Knowledge Software Ltd
Lines: 56
Message-ID: <828048403snz@knosof.co.uk>
References: <1996Mar28.154520.1@rmcs.cranfield.ac.uk>
Reply-To: derek@knosof.co.uk
X-NNTP-Posting-Host: knosof.demon.co.uk
X-Newsreader: Demon Internet Simple News v1.30
X-Mail2News-Path: knosof.demon.co.uk
Xref: euryale.cc.adfa.oz.au comp.os.linux.development.system:20399 comp.bugs.4bsd:2096
In article <1996Mar28.154520.1@rmcs.cranfield.ac.uk>
warner@rmcs.cranfield.ac.uk "Alistair (Joe" writes:
> I have recently been involved in a cooperative project and the results
> have given me cause to make a comparison of srandom/random between
> Linux & SunOS.
>
> My colleague (the one with Linux) sent me his source __random.c which
> indicates that it is based upon the Berkeley source
>
> However, this will not work because the two files are different in the
> srandom/__srandom functions
>
> BSD: state[i] = 1103515245 * state[i - 1] + 12345;
>
> Linux: state[i] = 1103515145 * state[i - 1] + 12345;
> ^
>
> The constant used to multiply is different - as shown.
>
> So my questions are
>
> 1. Has the value of the multiplication constant above in the BSD source
> changed between 5.5 & 5.9?
>
> 2. Does the Linux version of __srandom contain a typo in the
> multiplication constant?
>
I would not worry about the change in digits. Both these random number
generators are a joke.
The following
x = (171 * x) % 30269
y = (172 * y) % 30307
z = (170 * z) % 30323
rand = fmod( x / 30269.0 + y / 30307.0 + z / 30323.0, 1.0)
has lots of desirable properties. See Algorithm 183,
Applied Statistics 1982, Vol 32 No 2
At 1000 numbers a second this function will take 880 years to repeat
the same number sequence.
derek
--
Derek M Jones tel: +44 (0) 1252 520 667
Knowledge Software Ltd email: derek@knosof.co.uk
http://www.knosof.co.uk