Análisis de Números Pseudo-aleatorios

Se pretende analizar un conjunto de numeros pseudo-aleatorios para hallar los coeficientes del método de congruencias lineales modulares z_{n}=\left( az_{n-1}+c \right) \left( \mbox{mod}\right) m asociado al conjunto generado.

Aunque técnicamente podemos intentar hallar los coeficientes de cualquier método de generación de números pseudo-aleatorios, tomamos el más sencillo para dar una idea intuitiva de lo que podemos hacer para otros métodos.

Existe la dificultad de saber si realmente los datos que tenemos provienen de un método de congruencias lineales modulares de la forma en que proponemos aquí. En este caso suponemos que los datos provienen de un método de congruencias lineales modulares con coeficientes particulares a,c,m,z_{0}.


ANÁLISIS EN CONDICIONES IDEALES

Sea \left\{ z_{n}\right\} _{n=1}^{M} una sucesión de números pseudo-aleatorios generados por el método de congruencias lineales modulares, donde M\in \mathbb{N} (de preferencia M\rightarrow \infty )

DETERMINAR m

Supongamos que z_{n}=\left( az_{n-1}+c\right) \left( \mbox{mod}\right) m tiene periodo completo, es decir z_{j}=z_{j+m} \forall j\geq 0. De modo que si contamos con los suficientes datos podemos hallar fácilmente el parámetro m. Sabemos que \max_{n\in \mathbb{N}}\left\{ z_{n}\right\} =m-1 por ser el residuo más grande, de modo que

m=\max_{n\in \mathbb{N}}\left\{ z_{n}\right\} +1

DETERMINAR z_{0}

Observe que z_{0}=z_{0+m} de modo que si conocemos m, z_{m} coincide en valor con la semilla del método. De modo que

z_{0}=z_{m}

De no conocer el valor de z_{m}, necesitamos conocer los parámetros a,c,m para determinar z_{0} de z_{1}=\left( az_{0}+c\right) \left( \mbox{mod}\right) m resolviendo la siguiente ecuación entera

z_{0}=a^{-1}\left( z_{1}+hm-c\right)

Donde h es el entero asociado a z_{1}+hm=az_{0}+c después de haber calculado el modulo.

DETERMINAR c

Si z_{j}=0 para algún j, entonces el siguiente z_{j+1}=\left( a\ast 0+c\right) \left( \mbox{mod}\right) m=c+hm, h\geq 0 de modo que

c=z_{j+1}-hm

DETERMINAR a

Si z_{j}=1 para algún j, entonces el siguiente z_{j+1}=\left( a\ast 1+c\right) \left( \mbox{mod}\right) m=a+c+hm, h\geq 0 de modo que

a=z_{j+1}-c-hm


Post #03mycomplexsoul