#include // A variable used to initialize the generator (should never be 0). long r_seed = 12345678L; double uniform (); int main () { int i; double u; // Initialize the generator using some integer between 1 and m. r_seed = 1; // Print out the first 10 values. printf ("Ten random numbers between 0 and 1:\n"); for (i=0; i < 10; i++) { u = uniform (); printf (" %lf\n", u); } } // Constants needed for random generation const long m = 2147483647L; const long a = 48271L; const long q = 44488L; const long r = 3399L; // A function that returns a random number between 0 and 1. double uniform () { long t, lo, hi; double u; hi = r_seed / q; lo = r_seed - q * hi; t = a * lo - r * hi; if (t > 0) r_seed = t; else r_seed = t + m; u = (double) r_seed / (double) m ; return u; }