Docencia Autor

Técnicas de generación de números aleatorios

1. Algoritmo de Cuadrados Medios

Paso 1: Valor Inicial X (semilla)
Paso 2: Se eleva al cuadrado ese valor X
Paso 3: Se extrae los dígitos centrales
Paso 4: Se convierte a un valor entre 0 y 1
Paso 5: Usar el nuevo valor como X y volver al Paso 2

Ejemplo

Semilla = 4561 (r=0,4561)

Valor Cuadrado r
Valor Aleatorio usado para calcular el valor de las variables aleatorias
4561 20802721 0,8027
8027 64432729 0,4327
4327 18722929 0,7229
7229 52258441 0,2584

 

2. Algoritmo de Producto Medio

X0=17, X1=23

X2=X0*X1=17*23=391
X
3=X1*X2=23*39=897
X
4=X2*X3=39*89=3471
Xn=Xn-2*Xn-1

X0 X1 X2 r
Valor Aleatorio usado para calcular el valor de las variables aleatorias
17 23 391 0,39
23 39 897 0,89
39 89 3471 0,47
89 47 4183 0,18

 

3. Algoritmo de Producto Medio modificado

Xn+1=K*Xn

X0=17, K=23

X1=K*X0=23*17=391
X
2=K*X1=23*39=897
 

K X0 X1 r
Valor Aleatorio usado para calcular el valor de las variables aleatorias
23 17 391 0,39
23 39 897 0,89
23 89 2047 0,04
23 4 92 0,92

 

4. Método congruencial aditivo

Xn+1=(Xn+Xn-k) Modulo M

k=2, X0=987, X1=173, X2=451, M=1000

k n Xn-k Xn M Xn+1 r
Valor Aleatorio usado para calcular el valor de las variables aleatorias
2 2 987 (X0) 451 (X2) 1000 438 (X3) 0,438
2 3 173 438 1000 611 0,611
2 4 451 611 1000 62 0,62
2 5 438 62 1000 500 0,5
2 6 611 500 1000 111 0,111

 

5. Método congruencial multiplicativo

Xn+1=(K*Xn) Modulo M

k X0 M Xn+1 r
Valor Aleatorio usado para calcular el valor de las variables aleatorias
3 56 679 168 168/679=0,2474
  168   504 0,7422
  504   154 0,2268
  154   462 0,6804
  462   28 0,0412

 

Actividad 1: Implemente el método 4. y 5. en Excel. Prueba con diversos valores.

 

Actividad 2: Implemente el método 1 en Java o C#. ¿Cómo hacerlo sin usar algoritmos de cadenas o strings?