El método Lineal de Congruencias de Lehmer
December 11, 2018 | Author: yolibet | Category: N/A
Short Description
Download El método Lineal de Congruencias de Lehmer...
Description
El método Lineal de Congruencias de Lehmer: Este método se basa en seleccionar 4 «NúmerosíSemilla» iniciales (m, a, c , x ), ), los cuales generan una serie de números pseudoaleatorios al operar bajo la siguiente fórmula matemática: X = (ax +c ) mod
Por
m.
ejemplo, se seleccionan los números 10, 8, 19, 7, que corresponde a
los 4 números iniciales ( m, a, c , x ), ), y el último número 7 destacado en color rojo es el que se usará para poder generar el primer número de la serie pseudoaleatoria, y de acuerdo a la anterior fórmula ese 7 debe ser multiplicado por el 8 (que corresponde a la expresión:
), ax ),
y al resultado
de esa operación (56) se le debe adicionar el número 19 (que corresponde a la expresión:
), ax +c ),
lo que arroja como resultado el valor
75, el cual ahora debe ser dividido por 10 para tomar como resultado no el cociente sino el resto, módulo o residuo entero de la división (que corresponde a la expresión: mod
m)
que equivale a 5 .
El
número
antes
obtenido
es
el
primer
resultado
de
la
serie
pseudoaleatoria y ahora puede reemplazar al número 7 inicial (10, 8, 19, 5), y al aplicar de nuevo la fórmula matemática ya mencionada (8×5 = 40+19 = 59 mod 10 = 9) se obtiene que el nuevo residuo entero es 9, y este nuevo número ingresa a la serie pseudoaleatoria . El 9 ahora reemplaza al 5 dentro de los números iniciales (10, 8, 19, 9), y al aplicar de nuevo la fórmula (8×9 = 72+19 = 91 mod 10 = 1) se obtiene como nuevo residuo el número 1 que ingresa a la serie pseudoaleatoria . El número 1 ahora reemplaza al 9 dentro de los números iniciales (10, 8, 19,1), y al aplicar de nuevo la fórmula (8×1 = 8+19 = 27 mod 10 = 7) se obtiene como residuo el número 7 que ingresa a la serie . Si sucesivamente se aplica la misma fórmula, se obtiene una serie pseudoaleatoria
formada
por
los
5í9í1í7í5í9í1í7í5í9í1í7í5í9í1
, etc.
siguientes
números:
Es fácil darse cuenta que en este sencillo ejemplo el Loop o periodo repetitivo es muy corto y se produce muy pronto (se comienza a repetir indefinidamente la serie 5í9í1í7), pero actualmente, aprovechando la
gran potencia de cómputo de los Lineal de
Congruencias
PCs,
se ha propuesto usar el Método
seleccionando 4 números iniciales que están
formados cada uno hasta por más de 50 dígitos , pues entre más grandes sean estos 4 números iniciales, y sobretodo, entre más grande sea m, se logra que más largo sea el periodo, ya que se debe tener en cuenta que los posibles residuos enteros resultantes de la división y de la función «mod» que ingresarán a la serie pseudoaleatoria siempre serán números enteros ubicados entre 0 y el valor mí1, motivo por el cual es conveniente que dentro del algoritmo el valor de
m
siempre sea
suficientemente grande .
El Método Lineal de
Congruencias
en las últimas décadas ha sido muy
usado en el funcionamiento de los randomizer o RNG, porque es fácil para el programador seleccionar unos NúmerosíSemilla adecuados a partir de los cuales puede generar resultados pseudoaleatorios ubicados dentro de un determinado rango, ya sea de 0 a 10, de 0 a 36, de 0 a 216, etc.
Por
ejemplo, usando este algoritmo se puede de forma deliberada
seleccionar unos númerosísemilla orientados a generar resultados
aleatorios que siempre estarán ubicados entre los valores 0 y 6 . As , se pueden seleccionar estos números-semilla: 7, 3, 5, 12; que corresponden al orden de la fórmula: ( m, a, c , x ). Y luego, al aplicar esa fórmula del Método Lineal de
Congruencias ( X = (ax +c )
mod
m),
se obtiene la serie
de resultados pseudoaleatorios representada en la siguiente tabla:
MÉTODO LINEAL DE CONGRUENCIAS: Número Multiplica Resulta Dividi Residu s- do por 3 y do do por o Semilla sumado Parcial: 7: entero de la a 5: (m) de la Llave: (ax + c ) divisió ( x ) n: (mod )
m
12
12 × 3 + 5
6
6×3+5 2×3+5 4×3+5
2
4
= 41 = 23 = 11 = 17
5,857 3,286 1,571 2,429
6 2
4 3
3 0 5 6
3×3+5 0×3+5 5×3+5 6×3+5 2×3+5 4×3+5 3×3+5 0×3+5
2
4 3 0 Como
= 14 =5 = 20 = 23 = 11 = 17 = 14 =5
2,000 0,714 2,857 3,286 1,571 2,429 2,000 0,714
0 5 6 2
4 3 0 5
se puede observar, con este método se genera automáticamente la
siguiente serie pseudoaleatoria: 6í2í4í3í0í5í6í2í4
, etc . En esta
serie cada número final resultante al aplicar el algoritmo es usado como un
nuevo
númeroísemilla
para
generar
el
subsiguiente
número
pseudoaleatorio de la serie . La clave para que el algoritmo sólo genere números entre 0 y 6 se encuentra al dividir el resultado parcial por el número 7, porque en este caso el residuo entero (que se obtiene mediante la función «mod» de la calculadora) siempre será un número ubicado entre 0 y 7í1 (es decir, entre 0 y 6) .
Por
supuesto, debido a la
sencillez de este ejemplo, la secuencia pseudoaleatoria fácilmente se vuelve repetitiva, mostrando un Loop muy corto fácilmente predecible .
MÉTODOS DE GENERACIÓN DE NÚMEROS PSEUDOALEATORIOS U( 0,1 ) Existen un gran número de métodos para generar los números aleatorios uniformes entre 0 y 1. Algunas formas de obtener estos números son: - Utilizando tablas de números aleatorios. - Utilizando calculadoras ( algunas incluyen una función para generarlos ). - Los lenguajes de programación y las hojas electrónicas incluyen una función para generarlos. - Utilizando Generadores Congruenciales.
View more...
Comments