Generador de números aleatorios

Generador de números aleatorios
Two red dice 01.svg

En estadística, un número aleatorio es un resultado de una variable al azar especificada por una distribución. Los algoritmos para la generación de valores uniformemente distribuidos están presentes en todas las calculadoras y lenguajes de programación, y suelen estar basados en congruencias numéricas del tipo:

x_{n+1} \equiv (ax_n+c)\pmod m

El éxito de este tipo de generadores de valores de una variable aleatoria depende de la elección de los cuatro parámetros que intervienen inicialmente en la expresión anterior:

  • El valor inicial o semilla: x0
  • La constante multiplicativa: a
  • La constante aditiva: c
  • El número m respecto al cual se calculan los restos

Estos cuatro valores deben ser números enteros no negativos y que cumplan la siguiente condición: x0,a,c < m.

La mayor parte de los generadores de números aleatorios son, en realidad, pseudoaleatorios; se calcula (o introduce internamente) un valor x0, que llamaremos semilla, y, a partir de él, se van generando x1, x2, x3, ...

Siempre que se parta de la misma semilla, se obtendrá la misma secuencia de valores.

Por la condición anterior, es evidente que todos los valores generados por este procedimiento son números enteros entre 0 y m-1. El número máximo de cifras distintas que pueden obtenerse con el procedimiento descrito es m, así que llegará un momento en que el primer número generado se repetirá produciéndose un ciclo.

El ciclo dónde inevitablemente caerá el generador interesa que sea de la mayor longitud posible (como máximo m), para evitar que se repitan pronto los valores aleatorios. Por ejemplo, para los valores a = 3, c = 5, x0 = 2 y m = 32 se obtiene la siguiente secuencia de valores:

2-11-6-23-10-3-14-15-18-27-22-7-26-19-30-31-2-11-6

La secuencia generada tiene como longitud 16 números (el número generado en la decimoséptima posición es el 2 inicial, por lo que toda la secuencia se repite a partir de ahí), muy inferior a la longitud máxima que podría tener (m=32). Determinadas elecciones de parámetros del generador (x0 , a , c y m) conducen a ciclos de amplitud máxima.

  • Si c≠0:
    • m.c.m.(c,m) = 1
    • a \equiv 1\pmod p para cada primo p de m
    • a \equiv 1 \pmod 4 si 4 es divisor de m
  • Si c=0:
    • m es primo
    • a^{m-1/p} \equiv 1\pmod m para cada factor primo p de m-1

Por ejemplo, tomando como valores m = 25 = 32, a = 5, x0 = 1 y c = 3 se obtiene la siguiente secuencia de números, que tiene longitud máxima:

1-8-11-26-5-28-15-14-9-16-19-2-13-4-23-22-17-24-27-10-21-12-31-30-25-0-3-18-29-20-7-6-1

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Mira otros diccionarios:

  • Generador de números aleatorios — La mayor parte de los generadores de números aleatorios son, en realidad, pseudoaleatorios:se calcula (o introduce internamente) un valor X0, que llamaremos semilla, y, a partir de él, se van generando X1, X2, X3, ... Siempre que partamos de la… …   Enciclopedia Universal

  • Tabla de números aleatorios — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Generador de números pseudo-aleatorios criptográficamente seguro — Un Generador de números pseudo aleatorios criptográficamente seguro (CSPRNG, del inglés «Cryptographically Secure PseudoRandom Number Generator») es un Generador de números pseudo aleatorios (PRNG) con características que lo hacen adecuado para… …   Wikipedia Español

  • Generador de números pseudoaleatorios — Un generador pseudoaleatorio de números (GPAN) es un algoritmo que produce una sucesión de números que es una muy buena aproximación a un conjunto aleatorio de números. La sucesión no es exactamente aleatoria en el sentido de que queda… …   Wikipedia Español

  • Generador (matemática) — En matemáticas, el término generador puede tener diferentes significados: Conjunto generador de un grupo. Sistema generador. Generador de números aleatorios. Generador infinitesimal. Esta página de desambiguación cataloga artículos relacionados… …   Wikipedia Español

  • Generador pseudoaleatorio de números — Saltar a navegación, búsqueda Un generador pseudoaleatorio de números (GPAN) es un algoritmo que produce una sucesión de números que es una muy buena aproximación a un conjunto aleatorio de números. La sucesión no es exactamente aleatoria en el… …   Wikipedia Español

  • Sucesión de números pseudoaleatorios — Una Sucesión de números pseudoaleatorios es una sucesión de números que ha sido obtenida mediante un proceso aritmético definido, pero que es una secuencia de números aleatorios efectiva para el propósito para el que se la requiere. Si bien una… …   Wikipedia Español

  • Libreta de un solo uso — Extracto de una libreta de un solo uso. En criptografía, la libreta de un solo uso (del inglés one time pad) es un algoritmo de cifrado por el que el texto en claro se combina con una clave aleatoria o «libreta» igual de larga que el texto en… …   Wikipedia Español

  • Atari POKEY — Saltar a navegación, búsqueda Atari POKEY (C012294) El sonido en los microcomputadores Atari de 8 bits era controlado por POKEY que se encargaba también de leer el teclado, generar números aleatorios y leer el puerto serial de comunicaciones {en… …   Wikipedia Español

  • Método de Monte Carlo — Saltar a navegación, búsqueda El método de Monte Carlo es un método no determinístico o estadístico numérico usado para aproximar expresiones matemáticas complejas y costosas de evaluar con exactitud. El método se llamó así en referencia al… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”