You are on page 1of 8

GENERACION DE NUMEROS

PSEUDOALEATORIOS CON
METODOS CONGRUENCIALES
LINEALES.
Rosana Ortiz Nez 11420427.

INTRODUCCIN.
Generadores congruenciales lineales.
Varios esquemas han sido propuestos para la generacin de los nmeros pseudoaleatorios a
travs de relaciones matemticas de recurrencia. Estos nmeros se consideran pseudoaleatorios,
porque aunque pasan todas las pruebas de aleatoriedad. Ellos son de hecho completamente
determinsticos. Los mtodos congruenciales ms populares son el mixto y el multiplicativo.

Congruencial Mixto.
El generador congruencial lineal generan una secuencia de nmeros pseudoaleatorios en el cual,
el prximo nmero pseudoaleatorio es determinado a partir del ltimo nmero generado, es
decir, el nmero pseudoaleatorio xn+1 es derivado a partir del nmero pseudoaleatorio xn.
La frmula es la siguiente:
xi=(axi+b) modulo de m
Datos:
-Constantes a,b y m
-Semilla x0
-Nmero de datos a generar (N)
M debe ser una potencia de 2
M=2^k; k E (Enteros); m>N
Ejemplo:
a=5, b=9, N=20, xo=15
x1=(5*15+9) mod 32; x1=20; r=x1/(m-1); r=0.645161
x2=(5*20+9) mod 32; x2=13
x3=(5*13+9) mod 32; x3=10
x4=(5*10+9) mod 32; x4=27
.
.
.
xn

Congruencial multiplicativo
El generador congruencial lineal generan una secuencia de nmeros pseudoaleatorios en el cual,
el prximo nmero pseudoaleatorio es determinado a partir del ltimo nmero generado, es
decir, el nmero pseudoaleatorio xn+1 es derivado a partir del nmero pseudoaleatorio xn.
La frmula es la siguiente:
xi=(axi) modulo de m
Datos:
-Constantes a y m
-Semilla x0
-Nmero de datos a generar (N)
M debe ser una potencia de 2
M=2^k; k E (Enteros); m>N

Congruencial multiplicativo
El generador congruencial lineal generan una secuencia de nmeros pseudoaleatorios en el cual,
el prximo nmero pseudoaleatorio es determinado a partir del ltimo nmero generado, es
decir, el nmero pseudoaleatorio xn+1 es derivado a partir del nmero pseudoaleatorio xn.
La frmula es la siguiente:
xi=(xi+b) modulo de m
Datos:
-Constantes b y m
-Semilla x0
-Nmero de datos a generar (N)
M debe ser una potencia de 2
M=2^k; k E (Enteros); m>N

DESARROLLO.
Bloque de cdigo generador Mixto
public void PseudoAleatorios()
{
double m=0,k=0,x0,r=0;
do
{
m=Math.pow(2, k);
k++;
}while(m<n);
for(int i=0; i<n; i++)
{
x0=((a*x+b)%m);
double mod=m-1;
r= x0/mod;
System.out.println("aleatorio: "+r);
x=x0;
}
}

Bloque de cdigo generador Multiplicativo


public void PseudoAleatorios()
{
double m=0,k=0,x0,r=0;
do
{
m=Math.pow(2, k);
k++;
}while(m<n);
for(int i=0; i<n; i++)
{
x0=((a*x)%m);
double mod=m-1;
r= x0/mod;
System.out.println("aleatorio: "+r);
x=x0;
}

Bloque de cdigo generador Aditivo


public void PseudoAleatorios()
{

double m=0,k=0,x0,r=0;
do
{
m=Math.pow(2, k);
k++;
}while(m<n);
for(int i=0; i<n; i++)
{
x0=((x+b)%m);
double mod=m-1;
r= x0/mod;
System.out.println("aleatorio: "+r);
x=x0;
}
}
}
x0 utilizada:15
a utilizada: 5
b utilizada: 9

RESULTADOS.
Mixto:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:

0.31746031746031744
0.7142857142857143
0.6666666666666666
0.42857142857142855
0.25396825396825395
0.3968253968253968
0.09523809523809523
0.6190476190476191
0.19047619047619047
0.07936507936507936
0.5396825396825397
0.8095238095238095
0.12698412698412698
0.7777777777777778
0.9841269841269841
1.0
0.06349206349206349
0.4603174603174603
0.4126984126984127
0.1746031746031746
0.0

aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:

0.14285714285714285
0.8571428571428571
0.36507936507936506
0.9523809523809523
0.8412698412698413
0.2857142857142857
0.5555555555555556
0.8888888888888888
0.5238095238095238
0.7301587301587301
0.746031746031746
0.8253968253968254
0.20634920634920634
0.15873015873015872
0.9365079365079365
0.7619047619047619
0.9047619047619048
0.6031746031746031
0.1111111111111111
0.6984126984126984
0.5873015873015873
0.031746031746031744
0.30158730158730157
0.6349206349206349
0.2698412698412698
0.47619047619047616
0.49206349206349204
0.5714285714285714
0.9682539682539683

Multiplicativo:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:

0.1746031746031746
0.873015873015873
0.30158730158730157
0.49206349206349204
0.42857142857142855
0.1111111111111111
0.5555555555555556
0.746031746031746
0.6825396825396826
0.36507936507936506
0.8095238095238095
1.0
0.9365079365079365
0.6190476190476191
0.047619047619047616
0.23809523809523808
0.1746031746031746
0.873015873015873
0.30158730158730157
0.49206349206349204
0.42857142857142855
0.1111111111111111

aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:

0.5555555555555556
0.746031746031746
0.6825396825396826
0.36507936507936506
0.8095238095238095
1.0
0.9365079365079365
0.6190476190476191
0.047619047619047616
0.23809523809523808
0.1746031746031746
0.873015873015873
0.30158730158730157
0.49206349206349204
0.42857142857142855
0.1111111111111111
0.5555555555555556
0.746031746031746
0.6825396825396826
0.36507936507936506
0.8095238095238095
1.0
0.9365079365079365
0.6190476190476191
0.047619047619047616
0.23809523809523808
0.1746031746031746
0.873015873015873

Aditivo:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:

0.38095238095238093
0.5238095238095238
0.6666666666666666
0.8095238095238095
0.9523809523809523
0.07936507936507936
0.2222222222222222
0.36507936507936506
0.5079365079365079
0.6507936507936508
0.7936507936507936
0.9365079365079365
0.06349206349206349
0.20634920634920634
0.3492063492063492
0.49206349206349204
0.6349206349206349
0.7777777777777778
0.9206349206349206
0.047619047619047616
0.19047619047619047
0.3333333333333333
0.47619047619047616
0.6190476190476191
0.7619047619047619
0.9047619047619048
0.031746031746031744

aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:
aleatorio:

0.1746031746031746
0.31746031746031744
0.4603174603174603
0.6031746031746031
0.746031746031746
0.8888888888888888
0.015873015873015872
0.15873015873015872
0.30158730158730157
0.4444444444444444
0.5873015873015873
0.7301587301587301
0.873015873015873
0.0
0.14285714285714285
0.2857142857142857
0.42857142857142855
0.5714285714285714
0.7142857142857143
0.8571428571428571
1.0
0.12698412698412698
0.2698412698412698

CONCLUSIONES.
Los mtodos congruenciales son mucho ms cortos en cdigo generado que los mtodos no
congruenciales, sin embargo se debe tener especial cuidado con los valores dados a las constantes
y a la semilla utilizada, ya que se pueden llegar a ciclar bloques de nmeros aleatorios repetitivos.

You might also like