Artigo Acesso aberto Revisado por pares

The Monty Python method for generating random variables

1998; Association for Computing Machinery; Volume: 24; Issue: 3 Linguagem: Inglês

10.1145/292395.292453

ISSN

1557-7295

Autores

George Marsaglia, Wai Wan Tsang,

Tópico(s)

Computability, Logic, AI Algorithms

Resumo

We suggest an interesting and fast method for generating normal, exponential, t, von Mises, and certain other important random variables used in Monte Carlo studies. The right half of a symmetric density is cut into pieces, then, using simple area-preserving transformations, reassembled into a rectangle from which the x-coordinate—or a linear function of the x-coordinate—of a random point provides the required variate. To illustrate the speed and simplicity of the Monty Python method, we provide a small C program, self-contained, for rapid generation of normal (Gaussian) variables. It is self-contained in the sense that required uniform variates are generated in-line, as pairs of 16-bit integers by means of the remarkable new multiply-with-carry method.

Referência(s)