
2.8 Algortimos congruenciales no lineales
Este algoritmo tiene la ecuación recursiva:
Xi+1 = (a Xi2 + b X i + c) mod (m)
Con i = 0,1, 2, 3,..., n.
En este caso, los números ir pueden ser generados por la ecuación:
Ri = Xi / m-1
De acuerdo con L’Ecuyer, las condiciones que deben cumplir los parámetros m, a, b y c para alcanzar un período máximo de N = m son:
• m debe ser múltiplo de g 2, donde g debe ser entero,
• a debe ser un número par,
• m debe ser un número impar
• (b−1)mod4 =1.
De esta manera se logra un período de vida máximo N = m.
Este algoritmo no congruencial fue propuesto en la década de los cuarenta del siglo XX por Von Neumann y Metrópolis. Requiere un número entero detonador con D dígitos, el cual es elevado al cuadrado para seleccionar del resultado los D dígitos del centro; el primer número se determina simplemente anteponiendo el “0.” a esos dígitos. Para obtener el segundo numero se sigue el mismo procedimiento, solo que ahora se eleva al cuadrado los D dígitos del centro que se seleccionaron para obtener el primer número.
Este método se repite hasta obtener n números.
Pasos para la generación de números aleatorios con este algoritmo:
1. Seleccionar la semilla ( X 0 ) con D dígitos (D > 3) .
2. Sea Y0 = resultado de elevar X0 al cuadrado; sea X1 = los D dígitos del centro y sea r = 0.D dígitos del centro. 1
3. Sea Yi = resultado de elevar Xi al cuadrado; 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 .
4. Repetir el paso 3 hasta obtener los n números ri deseados.
Nota: El algoritmo de cuadrados medios generalmente es incapaz de generar una secuencia de números con periodo de vida n grande. Además, en ocasiones solo es capaz de generar un solo numero.
Bibliografía
-
Anon, (2017). [online] Available at: http://virtual.chapingo.mx/fis/aleato.pdf [Accessed 7 Mar. 2017].