These functions generate pseudo-random numbers using the linear
congruential algorithm and 48-bit integer arithmetic.
The drand48() and erand48() functions return nonnegative double-
precision floating-point values uniformly distributed over the
interval [0.0, 1.0).
The lrand48() and nrand48() functions return nonnegative long
integers uniformly distributed over the interval [0, 2^31).
The mrand48() and jrand48() functions return signed long integers
uniformly distributed over the interval [-2^31, 2^31).
The srand48(), seed48() and lcong48() functions are initialization
functions, one of which should be called before using drand48(),
lrand48() or mrand48(). The functions erand48(), nrand48() and
jrand48() do not require an initialization function to be called
first.