Java Program to Implement Park-Miller Random Number Generation Algorithm

This is java program to generate the random numbers, using the Park-Miller algorithm.Park–Miller random number generator (after Stephen K. Park and Keith W. Miller), is a variant of linear congruential generator (LCG) that operates in multiplicative group of integers modulo n. A general formula of a random number generator (RNG) of this type is, x(n+1) = g*x(n) mod n.

Here is the source code of the Java Program to Implement Park-Miller Random Number Generation Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//This is a sample program to random numbers using Park Miller Random Numbers algorithm
public class Park_Miller_Random_Numbers
{
    static final long m = 2147483647L;
    static final long a = 48271L;
    static final long q = 44488L;
    static final long r = 3399L;
  
    static long r_seed = 12345678L;
  
    public static double uniform ()
    {
        long hi = r_seed / q;
        long lo = r_seed - q * hi;
        long t = a * lo - r * hi;
        if (t > 0)
            r_seed = t;
        else
            r_seed = t + m;
        return r_seed;
    }
  
    public static void main (String[] argv)
    {
        double[] A = new double [10];
  
        for (int i=0; i<5; i++)
            A[i] = uniform();
  
        for (int i=0; i<5; i++)
            System.out.print ("  " + A[i]);   
    }
}

Output:

1
2
3
$ javac Park_Miller_Random_Numbers.java
$ java Park_Miller_Random_Numbers
1.085252519E9  5.08259731E8  1.352291773E9  1.563240271E9  8.90733155E8 ...