miércoles, 18 de marzo de 2020

ALGORITMO CONGRUENCIAL MULTIPLICATIVO


Algoritmo Congruencial Multiplicativo

Un algoritmo que se utiliza para generar números pseudo aleatorios, es el algoritmo congruencia multiplicativo. Tiene como base al algoritmo congruencia lineal pero conlleva una operación menos.
La operación principal es la siguiente:
X_{i+1} = (aX_{i}) mod (m)
Es decir, se toma una semilla a la que llamaremos X_{0}. Se multiplica por un número a y al resultado de la multiplicación se divide por m recuperando solo el residuo o módulo de la división. Este valor será X1, y así sucesivamente.
Esta operación nos da un valor entero. Si deseamos un número pseudo aleatorio en el intervalo (0,1), debemos realizar la siguiente operación sobre el número anteriormente obtenido.
R_{i} = X_{i} / (m-1)
Es decir, al número que produjo la primera operación, se le divide entre m-1. Nos dará un valor entre 0 y 1.
Para mejorar la eficiencia del algoritmo se deben seguir ciertas condiciones para los valores a, m, X_{0}.

Condiciones

M = 2^g
A = 3+8k o bien a = 5+8k
K = 0,1,2,3,…
X_{0} debe ser impar
G debe ser entero
Si se siguen estas condiciones se puede lograr que el algoritmo tenga un período de vida (iteraciones sin encontrar repetición) de m/4 o de 2^{g-2}







miércoles, 4 de marzo de 2020

Cuadrados medios, productos medios y multiplicador constante. con EXCEL

Cuadrados medios

https://app.box.com/s/4ovtemo8ory3euh72epvzpp25y3q0gfp

Algoritmo de productos medios

Este algoritmo es similar al anterior, la diferencia entre los dos es que este algoritmo requiere de dos semillas; ambas con D dígitos; además de elevarlas al cuadrado, las semillas se multiplican y del producto resultante se seleccionan los D dígitos del centro, los cuales formaran el primer número de D dígitos. Después se elimina una semilla y la otra se multiplica por el primer número de D dígitos, para luego seleccionar del producto los D dígitos que conformaran un segundo número ri. Entonces se elimina la segunda semilla, y se multiplica el primer número de los D dígitos por el segundo número de los D dígitos; del producto se obtiene el tercer número de ri. Siempre se ira eliminando el número más antiguo y el procedimiento se repetirá hasta generar los n números pseudo aleatorios.

Pasos para generar números con el algoritmo de producto medios:

1.- Seleccionar una semilla (X0) con D dígitos (D>3).

2.- Seleccionar una semilla (X0) con D dígitos (D>3).

3.- Sea Y0 = X0 * X1; sea X2 = los D dígitos del centro, y sea ri = 0. D dígitos del centro.

4.- Sea Yi = X1 * Xi+1; sea Xi+2 = los D dígitos del centro, y sea ri+1 = 0. D dígitos del centro para toda i= 1, 2, 3,…, n.

5.- Repetir el paso 4 hasta obtener los n números ri deseados.

https://app.box.com/s/w4u93z0qctbnq91cq45nk0v01ajql7wa


Algoritmo de multiplicador constante

Este algoritmo no congruencial es similar al algoritmo de productos medios.
Los siguientes son los pasos necesarios para generar números pseudo aleatorios con el algoritmo de multiplicador constante.

1. Selecciona una semilla ( ) X0 con D dígitos (D > 3).

2. Seleccionar una constante (a) con D dígitos (D > 3).

3. Sea Y0 = a * X0 ; sea X1 = los D dígitos del centro y sea r1 = 0.D dígitos del centro.

4. Sea Yi = a * Xi ; sea Xi+1 = los D dígitos del centro y sea ri+1 = 0.D dígitos del centro para toda i = 1, 2, 3,...,n .

5. Repetir el paso 4 hasta obtener los n números ir deseados.

https://app.box.com/s/ukbdw9ifjqwkanvv6k93f175kh1j57m8