Mathematically speaking, the sequence of random numbers used to effect a Monte
Carlo model should possess the following properties:
- Uncorrelated Sequences
- The sequences of random numbers should be serially uncorrelated. This
means that any subsequence of random numbers should not be correlated with any
other subsequence of random numbers. Most especially, n-tuples of random
numbers should be independent of one another. For example, if we are using the
random number generator to generate outgoing directions so as to fill the
hemispherical space above a point (or area), we should generate no unacceptable
geometrical patterns in the distribution of outgoing directions.
- Long Period
- The generator should be of long period (ideally, the generator should
not repeat; practically, the repetition should occur only after the generation
of a very large set of random numbers). More explanation is provided below.
- The sequence of random numbers should be uniform, and unbiased. That is,
equal fractions of random numbers should fall into equal ``areas'' in space.
For example, if random numbers on [0,1) are to be generated, it would be poor
practice were more than half to fall into [0, 0.1), presuming the sample size
sufficiently large. Often, when there is a lack of uniformity, there are
n-tuples of random numbers which are correlated. In this case, the space might
be filled in a definite, easily observable pattern. Thus, the properties of
uniformity and uncorrelated sequences are loosely related.
- The generator should be efficient. In particular, the generator used on
vector machines should be vectorizable, with low overhead. On massively
parallel architectures, the processors should not have to communicate among
themselves, except perhaps during initialization. This is not generally a
significant issue. With minimal effort, random number generators can be
implemented in a high level language such as C or FORTRAN, and be observed to
consume well less than 1% of overall CPU time over a large suite of
(See exercise 8.)