Cómo obtener un generador de números aleatorios Este apendice trata de explicar cómo obtener un generador de números aleatorios que responda a una distribución conocida a partir de una uniforme. Casi todos los ordenadores y lenguajes de programación, poseen un generador intrínseco de números pseudo-aleatorios uniformes en el intervalo 0, 1. Quisiéramos pues, aprovechar este generador para obtener números aleatorios que sigan otra distribución. Sea ![]() (donde a es el origen inferior en el que está definido f(x), por ejemplo, para una gaussiana ![]() Se puede demostrar que la variable aleatoria ![]() está distribuida uniformemente. Esta propiedad puede usarse para obtener nuestro generador. Para obtener un número aleatorio que siga nuestra distribución, llamaremos
al generador de nuestro ordenador que nos proporcionará un número r.
Calcularemos EJEMPLO
Supongamos que queremos un generador con
Generador de números gaussianos
Queremos ahora generar números aleatorios distribuidos según una gaussiana
de media 0 y sigma 1. Podríamos intentar aplicar el método anterior,
pero fracasaríamos ya que la gaussiana no es integrable analíticamente
y por lo tanto no podríamos obtener una fórmula para Damos a continuación un método práctico para obtenerlos:
El siguiente algoritmo es una mejora a este método:
Esta variación elimina el seno y el coseno a expensas de un rechazo
del Este guión ha sido basado en el trabajo previo realizado por el grupo de Altas Energías del departamento de Física Atómica, Molecular y Nuclear. Agradecimientos a José Luis Contreras y Abelardo Moralejo. Enlaces útiles para hacer las prácticas 2001-10-16 ------------------------------------------------------------------------------------------------------------------------------------- |