#next_pages_container (width: 5px; hight: 5px; position: absolute; top: -100px; left: -100px; z-index: 2147483647
The intern encoding of position was done on 32 bits, allowing a displacement between -2147483648 and 2147483647
. Thus, for a positioning accuracy of 1 micrometer results a maximum displacement between -2.147 and 2.147 Km.
This was achieved using an inversive congruential pseudorandom number generator (ICG(2147483647
, 1,1,0)) obtained from the P-Lab website (http://random.mat.sbg.ac.at/).
--Combined multiple recursive generator: [z.sub.n] = [x.sub.n] + [y.sub.n], x [2.sup.32], where [x.sub.n] is a linear congruential generator modulo [2.sup.64] and where [y.sub.n] satisfies [y.sub.n] = 107374182[y.sub.n-1] + 104480[y.sub.n-5] (mod 2147483647
32-bit platforms are designed to perform time and date-related calculations, and manipulations correctly from 1/1/1970 00:00:00 through 1/18/2038 22:14:09 (2147483647
) Coordinated Universal Time.
errcnd = 8 if seed [is less than] 1 or seed [is greater than] 2147483647
The following implementation is approximately twice faster than the method proposed by Marse and Roberts: KX = IX/89062 IX = 24112 * MOD(IX, 89062) - 20703 * KX KX = IX/82143 IX = 26143 * MOD(IX, 82143) - 19198 * KX IF(IX.LT.0) IX = + 2147483647 Fatin Sezgin Ataturk University Erzurum, Turkey
The specific standard RNG is a multiplicative linear congruential generator with a = 16807 and m = 2147483647. The authors state that the multiplicative linear congruential generator (Lehmar generator) has the advantage of simplicity and adequate testing by the computer science community.
The multiplier a = 7.sub.5 = 16807 was first suggested by Lewis, Goodman and Miller in 1969, based largely on the fact that f(z) = 16807z mod 2147483647 is a full period generating function.
The most obvious way to implement the minimal standard generator in a high-level language such as Pascal is as follows: function Random : real; (* Integer Version 1 *) const a = 16807; m = 2147483647; begin seed := (a * seed) mod m; Random := seed / m end; where var seed : integer; is a global variable used to hold the current value in the integer sequence of z's.
The first and seventh values of m (2147483647 and 32749) are the largest primes smaller than 2.sup.31 and 2.sup.15 respectively (that can be represented in two's-complement 32-bit and 16-bit integer arithmetic respectively).
For m = 2147483647, the multipliers a = 742938285 and a = 950706376 are the two best overall according to ; a = 16807 has been suggested by Lewis et al.