Download - Random Number Generator
![Page 1: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/1.jpg)
December 1999
Prabhas Chongstitvatana
1
Random Number Generator
2110301 Intro. to Discrete Structures
Prabhas Chongstitvatana
![Page 2: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/2.jpg)
December 1999
Prabhas Chongstitvatana
2
What is random number ?Sequence of independent random numbers with a specified distribution such as uniform distribution (equally probable)
•Tippett 1927 published a table of 40,000 random digits•Kendall and Babington-Smith 1939 built a machine to generate random number to produce a table of 100,000 random digits.
![Page 3: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/3.jpg)
December 1999
Prabhas Chongstitvatana
3
Jon von Neumann 1946 suggested the production of random number using arithmetic operations of a computer, "middle square", square a previousrandom number and extract the middle digits,
Example generate 10-digit numbers, was 5772156649, square
33317792380594909201
the next number is 7923805949
![Page 4: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/4.jpg)
December 1999
Prabhas Chongstitvatana
4
The sequence is not random, but it appears to be. Sequences generated in a deterministic way are usually called pseudo-random sequences.
"middle square" has proved to be a comparatively poor source of random numbers. If zero appear as a number of the sequence, it will continually perpetuate itself.
Random numbers should not be generatedwith a method chosen at random. Some theory must be used.
![Page 5: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/5.jpg)
December 1999
Prabhas Chongstitvatana
5
The use of random numbers
1. simulation2. sampling3. numerical analysis4. computer programming5. decision making randomness is an essential part of optimal strategies in the theory of games6. recreation
![Page 6: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/6.jpg)
December 1999
Prabhas Chongstitvatana
6
Linear Congruential Method
x n+1 = ax n + c ( mod m ), 0 <= x n+1 < m
m > 0, 2 <= a < m, 0 <= c < m, 0 <= x 0 < m.
Theorem The terms of the sequence generated by the linear congruential method are given by
x k = a k x 0 + c(a k - 1) / ( a -1 ) (mod m ), 0 <= x k < m.
![Page 7: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/7.jpg)
December 1999
Prabhas Chongstitvatana
7
Proof by mathematical induction. for k = 1 , the formula is obviously true, since
x 1 = ax 0 + c ( mod m), 0 <= x 1 < m. Assume that the formula is valid for the k th term, so that
x k = a k x 0 + c(a k - 1) / ( a -1 ) (mod m ), 0 <= x k < m.
Sincex k+1= a x k + c (mod m ), 0 <= x k+1 < m.
we havex k+1 = a( a k x 0 + c(a k -1)/(a-1)) + c
= a k+1 x 0 + c(a(a k -1)/(a-1) + 1= a k+1 x 0 + c(a k+1 -1)/(a-1) (mod m)
![Page 8: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/8.jpg)
December 1999
Prabhas Chongstitvatana
8
which is the correct formula for the (k+1)th term. This demonstrates that the formula is correct for all positive integers k.
The period length of a linear congruential pseudo-random number generator is the maximum length of the sequence obtained without repetition.
Theorem The linear congruential generator produces a sequence of period length m if and only if (c,m) =1 , a = 1 (mod p) for all primes p dividing m, and a = 1 (mod 4) if 4 | m
![Page 9: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/9.jpg)
December 1999
Prabhas Chongstitvatana
9
For the proof see D. E. Knuth, “The art of computer programming” vol 2, “seminumerical algorithms”, 2nd ed Addison Wesley, 1981. pp. 9-20.
A special case where c = 0 is called multiplicative congruential method.
x n+1 = a x n ( mod m), 0 < x n+1 < m.
or
x n = a n x 0 (mod m), 0 < x n+1 < m.
![Page 10: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/10.jpg)
December 1999
Prabhas Chongstitvatana
10
For many applications, the generator is used with the modulus m equal to the Mersenne prime M31 = 2 31 -1.
When the modulus m is a prime, the maximum period length is m -1, and this is obtained when a is a primitive root of m.
Find a primitive root of M 31
![Page 11: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/11.jpg)
December 1999
Prabhas Chongstitvatana
11
Number Theory“Elementary number theory and its applications”, 2ed, K. Rosen. Addison-Wesley, 1988.
Definition Let m be a positive integer. If a and b are integers, we say that a is congruent to b modulo m if m | (a-b), denoted by a = b (mod m).
Definition. The integers a and b are called relatively prime if a and b have greatest common divisor (a,b) = 1.
![Page 12: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/12.jpg)
December 1999
Prabhas Chongstitvatana
12
Definition . Let n be a positive integer. The Euler phi-function p(n) is defined to be the number of positive integers not exceeding n which are relatively prime to n.
n 1 2 3 4 5 6 7 8 9 10 11 12(n) 1 1 2 2 4 2 6 4 6 4 10 4
![Page 13: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/13.jpg)
December 1999
Prabhas Chongstitvatana
13
Euler’s theorem. If m is a positive integer and a is an integer with (a,m) = 1, then
a p(m) = 1 (mod m).
Definition. Let a and m be relatively prime positive integers. Then the least positive integer x such that a x = 1 (mod m) is called the order of a modulo m denoted by ord m a.
![Page 14: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/14.jpg)
December 1999
Prabhas Chongstitvatana
14
Example Find the order of 2 modulo 7.2 1 = 2 (mod 7), 2 2 = 4 (mod 7), 2 3 = 1 (mod 7). Therefore ord 7 2 = 3.
Definition . If r and n are relatively prime integers with n > 0 and if ord n r = p(n) , then r is called a primitive root modulo n.
![Page 15: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/15.jpg)
December 1999
Prabhas Chongstitvatana
15
Theorem 1 If ord m a = t and if u is a positive integer, then
ord m (a u ) = t / (t,u)
Corollary 1 Let r be a primitive root modulo m where m is an integer m > 1. Then r u is a primitive root modulo m if and only if (u, p(m) ) = 1.
Proof By Theorem 1 we know that
ord m r u = ord m r / (u, ord m r ) = p(m) / (u, p(m) ).
Consequently, ord m r u = p(m), and r u is a primitive root modulo m, if and only if (u, p(m)) = 1.
![Page 16: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/16.jpg)
December 1999
Prabhas Chongstitvatana
16
To find a primitive root of M 31 that can be used with the good results, we first demonstrate that 7 is a primitive root of M 31
Theorem The integer 7 is a primitive root of M 31 = 2 31 - 1.
Proof To show that 7 is a primitive root of M31, it is sufficient to show that
7 (M 31 - 1)/q /= 1 ( mod M 31)
for all prime divisors q of M 31 -1. With this information we can conclude that ord M 31 7 = M 31 -1.
![Page 17: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/17.jpg)
December 1999
Prabhas Chongstitvatana
17
To find factorization of M 31 -1, we note that
M 31 - 1 = 231 -2 = 2(230 - 1) = 2(215 - 1)(215 + 1)= 2(25-1)(210+25+1)(25+1)(210-25+1)= 2.32.7.11.31.151.331
if we show that
7(M31 -1 )/q /=1 (mod M31)
for q = 2,3,7,11,31,151,331, then we know that 7 is a primitive root of M31 = 2147483647.
![Page 18: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/18.jpg)
December 1999
Prabhas Chongstitvatana
18
Since
7(M31 -1)/2 = 2147483546 /= 1 (mod M31)7(M31 -1)/3 = 1513477735 /= 1 (mod M31)7(M31 -1)/7 = 120536285 /= 1 (mod M31)7(M31 -1)/11 = 1969212174 /= 1 (mod M31)7(M31 -1)/31 = 512 /= 1 (mod M31)7(M31 -1)/151 = 535044134 /= 1 (mod M31)7(M31 -1)/331 = 1761885083 /= 1 (mod M31)
we see that 7 is a primitive root of M 31.
![Page 19: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/19.jpg)
December 1999
Prabhas Chongstitvatana
19
In practice we do not want to use the primitive root 7 as the generator, since the first few integers generated are small. We find a larger primitive root using Corollary 1. We take a power of 7 where the exponent is relatively prime to M31 - 1. For instance, since (5,M31 - 1) = 1, Corollary 1 tells us that 75 = 16807 is also a primitive root. Since (13,M31 -1 ) = 1, another possibility is to use 713 = 252246292 (mod M31) as the multiplier.
![Page 20: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/20.jpg)
December 1999
Prabhas Chongstitvatana
20
Choice of modulusLet w be the computer’s word size, or 2 e on an e-bit binary computer. Use
m = w + - 1.
Why not m = w ?
When m = w the right-hand digits of x n are much less random than the left-hand digits.
![Page 21: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/21.jpg)
December 1999
Prabhas Chongstitvatana
21
If d is a divisor of m, and if y n = x n mod d
we can easily show thaty n+1 = (a y n + c ) mod d
for x n+1 = a x n + c – qm for some integer q, and taking both sides mod d cause the quantity qm to drop out when d is a factor of m.
This shows that the low-order form a congruential sequence that has a period of length d or less.
![Page 22: Random Number Generator](https://reader035.vdocuments.site/reader035/viewer/2022062323/56815a95550346895dc81160/html5/thumbnails/22.jpg)
December 1999
Prabhas Chongstitvatana
22
Other generators
Linear congruential method can be generalized to, say, a quadratic congruential method
x n+1 = ( d x 2 n + a x n + c ) mod m
additive number generator (Mitchell and Moore 1958)
x n = (x n-24 + x n-55) mod m , n >= 55
m is even, x 0 . . . x 54 not all even. The least significant bits “x n mod 2” have a period of length 255 – 1. Therefore the generator must have a period at least this long.