You are on page 1of 21

RANDOM NUMBER

GENERATION AND TESTS


FOR UNIFORMITY
IE 144
Random Random
Simulation
Number Variate
OBJECTIVES FOR TODAY

•  Importance of random numbers in


Simulation
•  Generate Random Numbers using known
methods
•  Test generated RNs for uniformity
RANDOM NUMBERS

Random integers with two important


statistical properties:
•  uniformity
•  (continuous uniform distribution between 0 and 1)

•  independence
RANDOM NUMBER GENERATORS
(RNG)

•  When numbers are generated using a set


procedure, they are often referred to as
“pseudo-random numbers”.
•  RNG is a computational or physical device
designed to generate a sequence of
numbers that lack any pattern
REQUIREMENTS OF RANDOM NUMBER
GENERATORS

•  Reproducible or replicable
•  Non-repeating for a desired length
•  Generation at high rate of speed
•  Requires minimum amount of location space
•  Portability
METHODS FOR RANDOM NUMBER
GENERATION

Methods covered:
•  Linear Congruential Method
•  Midsquare Method

Others methods(Covered in IE 281)


•  Additive Congruential Method
•  Quadratic Congruential Method
•  Mid-Product Method
•  Constant Multiplier Technique
RANDOM DECIMALS

•  Randomly-generated set of numbers


uniformly distributed from 0 to 1
•  Useful in the generation of random variates
RANDOM DECIMALS

!"#$ !"%$ !"&$ !"'$ !"!$ !"'$ !"&$ !"#$

!"()#$ !"&#)$ !"*!+$ !",(%$ !"#%&$ !")%+$

!"%%+$ !"))+$ !"''+$ !"##+$ !"&&+$ !"**+$

!"#),$ !"%)#$ !",'*$ !"+!%$ !"&%!$ !"'#)$


CONVERTING TO RANDOM NUMBERS

•  RNGs generate integers which will need to be


converted to decimals when used in simulation.

To convert whole number (RI) to decimal (RN):


•  For midsquare method: divide by 10k
•  For congruential methods: divide by m
MODULUS OPERATION: METHODS FOR
COMPUTATION

Modulus (mod) r = Y mod m


1.  Solve Y/m, and get the remainder r
2.  r = Y – !Y/m" * m, where !x" is the greatest
integer function of x (largest truncated
integer resulting from the division). [Used in
C, Pascal, VB, Excel-project]
3.  Divide Y/m, subtract the integer part from the
resulting number, and multiply the fractional
part by m. If the answer has a decimal
component of .9999, round up to the next
higher integer. [Used in calculator]
Modulus operation: methods for
computation

4.  In MS Excel, r = MOD(number, divisor)


[Used in exercises only, not in project]
•  Number is the number (Y) for which you want
to find the remainder.
•  Divisor is the number (m) by which you want
to divide number. If divisor is 0, MOD returns
the #DIV/0! error value.
LINEAR CONGRUENTIAL
METHOD
Lehmer (1951)

! Xi+1 = (aXi + c) mod m,


i = 0, 1, 2,...
! Ri = X i / m

X0 – seed, a – multiplier, m – modulus, c – increment


Mixed Congruential Method [c ! 0]
Multiplicative Congruential Method [c = 0]
LINEAR CONGRUENTIAL
METHOD
Observations:
•  Xi < m. Actually, the largest Xi = m – 1
•  The selection of the values for the parameters
a, c, m, X0 drastically affects the statistical
properties and the cycle length.
•  Therefore maximal period can be achieved by
the proper choice of a, c, m, and x0.
LINEAR CONGRUENTIAL
METHOD
•  Largest Xi = m -1, Xi < m
•  Values selection for the inputs affects the
outcomes
•  Generated numbers need to be converted
into random decimals
LINEAR CONGRUENTIAL
METHOD
•  Choice of m. Since the period will always be less
than or equal to m, a larger value of m is desirable.
Values such as 231 – 1 and 248 are in common use.

•  Choice of a and c. A sequence generated by a LCM


scheme has maximal period iff
•  c is relatively prime to m
•  a – 1 is a multiple of 4 if m is a multiple of 4
•  In particular, choices of a = 216 + 5 = 65541 or a = 216 + 3
= 65539 have proven to be successful.
LINEAR CONGRUENTIAL
METHOD

• Choice of X0. If the period of the sequence is


m, the choice of X0 is immaterial, since the
entire sequence will still be generated.
• If the period of the sequence is < m, then the
choice of X0 is important (similar to
Midsquare example).
LINEAR CONGRUENTIAL
METHOD
Example:
Use the linear congruential method to generate a
sequence of random numbers with x0 = 27, a = 17, c
= 43, and m = 100.
The sequence of xi and subsequent Ri values are computed as follows:

X0 = 27
X1 = (17 x 27 + 43) mod 100 = 502 mod 100 = 2
X2 = (17 x 2 + 43) mod 100 = 77 mod 100 = 77
X3 = (17 x 77 + 43) mod 100 = 1352 mod 100 = 52

Convert to decimals by dividing by m.


R1 = X1/m = 2/100 = 0.02
R2 = X2/m = 77/100 = 0.77
R3 = X3/m = 52/100 = 0.52
PERIODS USING VARIOUS SEEDS

"  Using the multiplicative congruential method,


with a = 13, m = 26 = 64 (and c = 0)

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Xi 1 13 41 21 17 29 57 37 33 45 9 53 49 61 25

Xi 2 26 18 42 34 58 50 10 2

Xi 3 39 59 63 51 23 43 47 35 7 27 31 19 55 11

Xi 4 52 36 20 4
RANDOM DECIMAL STREAM

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Xi 1 13 41 21 17 29 57 37 33 45 9 53 49 61 25

Ri
/ - 0.20 0.64 0.33 0.27 0.45 0.89 0.58 0.52 0.70 0.14 0.83 0.77 0.95 0.39
= Xi
64

Always remember Xo is not part of the random number/


decimal stream!

You might also like