  An algorithm for sampling exactly from the normal distribution is given. The
algorithm reads some number of uniformly distributed random digits in a given
base and generates an initial portion of the representation of a normal deviate
in the same base. Thereafter, uniform random digits are copied directly into
the representation of the normal deviate. Thus, in contrast to existing
methods, it is possible to generate normal deviates exactly rounded to any
precision with a mean cost that scales linearly in the precision. The method
performs no extended precision arithmetic, calls no transcendental functions,
and, indeed, uses no floating point arithmetic whatsoever; it uses only simple
integer operations. It can easily be adapted to sample exactly from the
discrete normal distribution whose parameters are rational numbers.
