You are on page 1of 5

UNIVERSIDAD INTERNACIONAL DE LA RIOJA

MASTER UNIVERSITARIO EN INGENIERIA MATEMATICA



Y COMPUTACION
MODELADO Y SIMULACION NUMERICA

TAREA No 4

Nombre: Mario Armando Freire Torres

Fecha: Lunes 22 de mayo del 2017

Generaci
on de n
umeros aleatorios

Dados los siguientes generadores de congruencia, determine el periodo de cada uno de ellos a
partir de las reglas proporcionadas y genere los n umeros aleatorios de un periodo. Clasifique cada
uno de las ecuaciones segun el metodo al que pertenece y describa sus caractersticas relevantes:
Para la determinacion de los valores utilizaremos el siguiente algoritmo implementado en Matlab.

Listing 1: El codigo que se establecio para la generacion de los valores


1 function [ x ] = aleatorio (a ,b ,m , x0 , N )
2 %a es el multiplicador
3 %b es el incremento
4 %m es el modulo
5 %x0 es la semilla
6 %N es el numero de valores que queremos obtener
7 x (1 ,1) = x0 ;
8 for i =1: N
9 x ( i +1 ,1) = mod (( a * x (i ,1) + b ) ,m ) ;
10 end
11 end

Problemas

1.
xn = (8xn1 + 16) mod 100 ; x0 = 15 (1)

El generador 1 corresponde a un generador mixto debido a que b 6= 0.


El valor m = 100 y b = 16 no son primos entre s, debido a que tienen un factor primo
entre si diferente de 1 y es el 2.
un factor primo de m = 100 divide a a 1 = 7.
Ning
El valor de 4 divide a m = 100, pero 4 no divide a a 1 = 7.
Por las razones anteriores podemos decir que el generador de congruencia no tiene periodo
maximo.

1
Ejecutando la siguiente lnea tenemos:
>> [ x ] = a l e a t o r i o ( 8 , 1 6 , 1 0 0 , 1 5 , 1 0 0 ) ;

Los valores son: 15, 36 , 4, 48, 0, 16, 44, 68, 60, 96, 84, 88, 20, 76, 24, 8, 80, 56, 64, 28, 40,
36 , 4,..., tenemos que si no contamos con la semilla, ya que esta no se volvera a repetir,
el valor del periodo sera de 20

2.
xn = (50xn1 + 17) mod 100 ; x0 = 13 (2)

El generador 2 corresponde a un generador mixto debido a que b 6= 0.


El valor m = 100 y b = 17 son primos entre s.
un factor primo de m = 100 divide a a 1 = 49.
Ning
El valor de 4 divide a m = 100, pero 4 no divide a a 1 = 49.
Por las razones anteriores podemos decir que el generador de congruencia no tiene periodo
maximo.
Ejecutando la siguiente lnea tenemos:
>> [ x ] = a l e a t o r i o ( 5 0 , 1 7 , 1 0 0 , 1 3 , 1 0 0 ) ;

Los valores son: 13, 67, 67, 67, 67,..., tenemos que si no contamos con la semilla, el valor
que se evidencia siempre es el 67, por lo que no servira como un generador de congruencia.

3.
xn = (9xn1 + 13) mod 32 ; x0 = 8 (3)

El generador 3 corresponde a un generador mixto debido a que b 6= 0.


El valor m = 32 y b = 13 son primos entre s.
El factor primo q = 2 que divide a m = 32, tambien divide a a 1 = 8.
El valor de 4 divide a m = 32, y tambien divide a a 1 = 8 .
Por las razones anteriores podemos decir que el generador de congruencia tiene periodo
completo y es T = m = 32
Ejecutando la siguiente lnea tenemos:
>> [ x ] = a l e a t o r i o ( 9 , 1 3 , 3 2 , 8 , 1 0 0 ) ;

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

2
4.
xn = 211xn1 mod 108 ; x0 = 19 (4)

El generador 4 corresponde a un generador multiplicativo debido a que b = 0.


El valor m = 108 no es primo por lo tanto podemos concluir que el periodo T 6= 108 1
Ejecutando la siguiente lnea tenemos:
>> [ x ] = a l e a t o r i o ( 2 1 1 , 0 , 1 0 8 , 1 9 , 1 0 0 )

Los valores son: 19, 4009, 845899, 78484689, 60269379, 16838969,....

5.
xn = 211xn1 mod 103 ; x0 = 3 (5)

El generador 5 corresponde a un generador multiplicativo debido a que b = 0.


El valor m = 103 no es primo por lo tanto podemos concluir que el periodo T 6= 103 1,
de hecho el periodo es T = 50
Ejecutando la siguiente lnea tenemos:
>> [ x ] = a l e a t o r i o ( 2 1 1 , 0 , 1 0 3 , 3 , 1 0 0 )

Los valores son: 3 , 633, 563, 793, 323, 153, 283, 713, 443, 473, 803, 433, 363, 593, 123,
953, 83, 513, 243, 273, 603, 233, 163, 393, 923, 753, 883, 313, 43, 73, 403, 33, 963, 193,
723, 553, 683, 113, 843, 873, 203, 833, 763, 993, 523, 353, 483, 913, 643, 673, 3 , 633,....

6.
xn = 5xn1 mod 64 ; x0 = 7 (6)

El generador 6 corresponde a un generador multiplicativo debido a que b = 0.


El valor de la semilla x0 = 7 es impar.
Sabemos ademas que a mod 8 = 5 mod 8 = 5
Por lo anterior expuesto como m = 2k = 26 = 64 entonces el periodo T = 2k2 = 262 =
24 = 16
Ejecutando la siguiente lnea tenemos:
>> [ x ] = a l e a t o r i o ( 5 , 0 , 6 4 , 7 , 1 0 0 )

Los valores son: 7 , 35, 47, 43, 23, 51, 63, 59, 39, 3, 15, 11, 55, 19, 31, 27, 7 , 35,...

3
7. Dados los siguientes generadores de congruencia multiplicativos, podemos crear un generador
combinado de la siguiente forma

un = 5un1 mod 7 ; u0 = 1
vn = 3vn1 mod 5 ; v0 = 3

Usando la formula

k
!
X
j1
xn = (1) xi,j mod m
j=1

Es decir

un = 5un1 mod 7 ; u0 = 3
vn = 3vn1 mod 5 ; v0 = 1
xn = (un vn ) mod 7

Calculando el periodo del generador combinado

(m1 1)(m2 1)...(mk 1)


P =
2k1

(7 1)(5 1)
P = = 12
2

Para la determinacion de los valores utilizaremos el siguiente algoritmo implementado en


Matlab.

Listing 2: El codigo que se establecio para la generacion de los valores


1 function [ X ] = aleatorio_combinado (a ,b , m1 , m2 , u0 , v0 , N )
2 u (1 ,1) = u0 ;
3 v (1 ,1) = v0 ;
4 X (1 ,1) =0;
5 m = max ( m1 , m2 ) ;
6 for i =1: N +1
7 u ( i +1 ,1) = mod ( a * u (i ,1) , m1 ) ;
8 v ( i +1 ,1) = mod ( b * v (i ,1) , m2 ) ;
9 x ( i +1 ,1) = mod (( u ( i +1 ,1) -v ( i +1 ,1) ) ,m ) ;
10 X (i ,1) =i -1;
11 X (i ,2) = u (i ,1) ;
12 X (i ,3) = v (i ,1) ;
13 X (i ,4) = x (i ,1) ;
14 end
15 end

4
Ejecutando la siguiente linea tenemos
>> [X] = a l e a t o r i o c o m b i n a d o ( 5 , 3 , 7 , 5 , 3 , 1 , 3 0 )

Los valores seran los siguientes, y como se puede observar el periodo es P = 12

n u v x
0 3 1
1 1 3 5
2 5 4 1
3 4 2 2
4 6 1 5
5 2 3 6
6 3 4 6
7 1 2 6
8 5 1 4
9 4 1 1
10 6 4 2
11 2 2 0
12 3 1 2
13 1 3 5
... ... ... ...

Referencias
[1] Salmero n A. & Morales M., Estadstica Computacional, https://w3.ual.es/ asalmero/pa-
pers/libro.pdf

[2] Pulido M., Generacion de n


umeros aleatorios, https://webs.um.es/mpulido/miwiki/lib/exe/
fetch.php?id=amio&cache=cache&media=wiki:simt1b.pdf