NUMEROS ALEATORIOS
La idea es hallar un generador que sea fácil
de implementar en la computadora, que
sea rápido y que no ocupe mucho espacio
memoria, estos requerimientos pueden ser
satisfechos con una función matemática
sencilla que genere una sucesión de
números que satisfagan las condiciones que
definen una conjunto de números
aleatorios.
Generadores no congruenciales
Método del cuadrado medio
• Fue propuesto inicialmente por Von Newman y
Metrópolis en el año 1946.
• Para generar el siguiente número pseudoaleatorio, se toman los n dígitos centrales del
cuadrado del número anterior de n dígitos.
• Se requiere una semilla.
Método del cuadrado medio
R(n)2
M.R(n)2
n
R(n)
Val 1
Val 2
0
154
23,716
371
371
0
1
371
137,641
3,764
376
764
2
376
141,376
4,137
413
137
3
413
170,569
7,056
705
056
4
705
497,025
9,702
970
702
5
970
940,900
4,090
409
090
6
409
167,281
6,728
672
728
7
672
451,584
5,158
515
158
8
515
265,225
6,522
652
522
9
652
425,104
2,510
251
510
10
251
63,001
300
300
0
11
300
90,000
0
0
0
12
0
0
0
0
0
Análisis
• El problema con este método es que tiende a degenerar
rápidamente. Dependiendo del valor inicial el método
puede degenerar al cabo de ≈20 términos.
• Por ejemplo, supóngase que se quiere generar una serie
de números pseudo-aleatorios de cuatro dígitos y se
tiene como i-ésimo termino generado es 3500, luego se
tendrá:
n
R(n)
R(n)2
M.R(n)2
Random 1
Random 2
i
3500
12250000
2500
0
2500
i+1
2500
6250000
2500
0
2500
• Se puede observar que hemos llegado a una condición
degenerada. Por la tanto, es necesario verificar siempre la
serie de números y protegerse contra este fenómeno
Método del Producto Medio
• Este método es muy similar al anterior ya que se
tomará como número aleatorio siguiente de la
serie, a los n dígitos centrales del resultado de
una multiplicación previa.
• Se requiere dos semillas.
Método del Producto Medio
n
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
R(n)
151
155
340
270
180
860
548
712
901
415
739
668
936
252
358
21
51
7
5
R(n+1)
155
340
270
180
860
548
712
901
415
739
668
936
252
358
21
51
7
5
0
R(n)2
23,405
52,700
91,800
48,600
154,800
471,280
390,176
641,512
373,915
306,685
493,652
625,248
235,872
90,216
7,518
1,071
357
35
0
M.R(n)2
340
270
180
860
5,480
7,128
9,017
4,151
7,391
668
9,365
2,524
3,587
21
51
7
5
0
0
Val 1
340
270
180
860
548
712
901
415
739
668
936
252
358
21
51
7
5
0
0
Val 2
0
0
0
0
480
128
017
151
391
0
365
524
587
0
0
0
0
0
0
Análisis
• Una modificación para este método consiste en utilizar
un multiplicador constante, en lugar de dos números
aleatorios como se muestra a continuación:
Rn+1 = K * Rn
• Estos métodos son similares al cuadrado medio.
• Sin embargo los dos tienen periodos más extensos y los
números parecen estar distribuidos uniformemente.
• Este método tiende a degenerar a un valor constante.
• Tanto el método de cuadrados medios como el de
producto medio tienen un periodo corto para la cantidad
de números aleatorios que vamos a necesitaremos
generar en cada uno de nuestros Modelos.
Generadores Congruenciales
• Congruencial Lineal (Mixto).
• Congruencial Multiplicativo.
Método Congruencial Lineal (MCL)
• Los generadores congruenciales lineales generan
una serie de números pseudo - aleatorios de tal
forma que se puede generar el siguiente a partir del
ultimo número derivado, es decir, que el número
Xn+1 es generado a partir de Xn.
• La relación de recurrencia para el método
congruencial mixto es:
Xn+1 = (aXn + c) mod m
Donde:
X0
a
c
m
= semilla (X0 >0)
= multiplicador (a >0)
= constante aditiva (c >0)
= módulo (m >X0, m >a y m>c)
Método Congruencial Lineal (MCL)
• Si se quiere obtener números Uniformes (0,1) se
normaliza el resultado:
Un = Xn /
m
• En el MCL, si se repite un número ya se repite toda
la secuencia.
• Ventajas:
1. utiliza poca memoria y es muy rápido.
2. fácil de volver a generar la misma secuencia, guardando
un solo número, (se alcanza con partir desde la misma
semilla: X0).
Ejemplo
a
c
m
1
7
13
n
X (n )
a *X (n )+ c
[a *X (n )+ c ] m o d m
0
7
14
1
1
1
8
8
2
8
15
2
3
2
9
9
4
9
16
3
5
3
10
10
6
10
17
4
7
4
11
11
8
11
18
5
9
5
12
12
10
12
19
6
11
6
13
0
12
0
7
7
13
7
14
1
14
1
8
8
15
8
15
2
Análisis
• Si no se escogen los valores adecuados de los
parámetros el período del generador de números
pseudo – aleatorios, será menor que m.
• En la Tabla A se muestra los valores obtenidos para un
generador con parámetros: a = 7, c = 9, X0 = 5 y m = 11.
Como puede apreciarse en la tabla el período del
generador es 10 que es menor que el módulo que es
11.
• Si bien este caso no es crítico si lo es el que se presenta
en la Tabla B donde los parámetros toman los valores
de a = X0 = c = 7 y m=10 cuyo período es de 4, que es
un caso muy critico que nos puede llevar a resultados
no deseables y poco confiables
Tabla A
a
c
m
7
9
11
n
X (n )
a *X (n )+ c
[a *X (n )+ c] m o d m
0
5
44
0
1
0
9
9
2
9
72
6
3
6
51
7
4
7
58
3
5
3
30
8
6
8
65
10
7
10
79
2
8
2
23
1
9
1
16
5
10
5
44
0
Tabla B
a
c
m
7
7
10
n
X (n )
a *X (n )+ c
[a *X (n )+ c] m o d m
0
7
56
6
1
6
49
9
2
9
70
0
3
0
7
7
4
7
56
6
5
6
49
9
6
9
70
0
Selección de m, a, c, X0
a) Selección de módulo (m). Existen dos opciones que
son las siguientes:
a.1) Escoger al azar el módulo m.
a.2) Tomar m de tal manera que sea el número primo
más grande posible y además que sea menor que pd1, donde p es la base del sistema que se esta usando
y d es el número de bits que tiene una palabra de
computadora en el sistema que se esta usando.
Por ejemplo una computadora XT que trabaja en el
sistema binario entonces se tiene que p = 2 y d = 16.
Selección de m, a, c, X0
b) Selección de a.
• El valor de a debe ser un número entero impar,
que no deberá ser divisible por 3 ó 5. Pero
además, para asegurarnos que el generador
tenga período completo, el valor que se tome
para a deberá escogerse según el siguiente
criterio:
(a-1) mod 4 = 0 si 4 es un factor de m.
(a-1) mod b = 0 si b es un factor primo de m.
• Generalmente se toma a igual a 2k + 1 cuando se
trabaja en el sistema binario. En ambos casos el
valor que se asigne a k deberá ser mayor o igual
que 2.
Selección de m, a, c, X0
c) Selección de c.
• Este parámetro puede tomar cualquier valor.
Pero para asegurarnos de tener buenos
resultados se deberá seleccionar según la
siguiente regla:
c mod 8 = 5
• En consecuencia c deberá tomar un valor
entero impar y relativamente primo a m.
Selección de m, a, c, X0
d) Selección de X0
• Se tiene que para el generador congruencial el
valor que tome X0 es irrelevante y tiene poca o
ninguna influencia sobre las propiedades
estadísticas de las series de números pseudo aleatorios que se generen.
Método Congruencial Multiplicativo
• En forma semejante al método anterior el
generador congruencial multiplicativo genera el
próximo número pseudo - aleatorio a partir del
último número calculado, siguiendo la siguiente
relación de recurrencia:
Xn+1 = aXnmod m
• Para este generador también se deben escoger
adecuadamente los valores de a, X0, y m, con la
finalidad de que se pueda asegurar un período
máximo para la series pseudo - aleatorias generadas
por este método. A continuación se dan las reglas
que indican como se deben escoger estos valores.
Selección de m, a, X0
• Para trabajar en el sistema binario los valores de los
parámetros deberán escogerse siguiendo las siguientes
reglas:
– El valor de X0 debe ser un número entero impar y
relativamente primo a m.
– El valor de a debe ser obtenido a partir de la siguiente
expresión:
a = 8t ± 3
Donde t es cualquier entero.
– El valor de m puede ser 2d .
• Si m = 2d el período del generador es 2d-2 ó m/4.
• A modo de ejemplo se obtendremos el período de un
generador cuyos parámetros son: a = 5, X0 = 5 y m =
32. En la siguiente tabla se muestra los elementos que
componen la serie generada cuyo período es de 8
Tabla C
a
5
n
0
1
2
3
4
5
6
7
8
9
10
X(n)
5
25
29
17
21
9
13
1
5
25
29
m
32
[a*X(n)] mod m
a*X(n)
25
125
145
85
105
45
65
5
25
125
145
25
29
17
21
9
13
1
5
25
29
17
Tabla D
Parámetros
Caso
a
b
m
xo
1
6
0
13
1
2
7
0
13
10
3
5
0
13
5
4
7
0
11
5
5
6
0
11
3
Caso
Salidas
1
6
10
8
9
2
12
7
3
5
4
11
1
6
10
2
5
9
11
12
6
3
8
4
2
1
7
10
5
9
3
12
8
1
5
12
8
1
5
12
8
1
5
12
8
4
2
3
10
4
6
9
8
1
7
5
2
3
10
4
5
7
9
10
5
8
4
2
1
6
3
7
9
10
4
Descargar

NUMEROS ALEATORIOS