El método Lineal de Congruencias de Lehmer

December 11, 2018 | Author: yolibet | Category: N/A
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF