P. 1
NUMEROS ALEATORIOS

NUMEROS ALEATORIOS

|Views: 209|Likes:
Publicado porLuisin Jacobo

More info:

Published by: Luisin Jacobo on Nov 20, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/30/2013

pdf

text

original

NUMEROS ALEATORIOS ALGUNAS CARACTERISTICAS

Cuando se generan números seudoaleatorios se pueden producir ciertos errores o problemas, como por ejemplo: 1. Los números generados pueden no estar distribuidos uniformemente. 2. Los números generados pueden corresponder a una distribución discreta en lugar de a una continua. 3. La media de los números generados puede ser demasiado alta o demasiado baja. 4. La varianza de los números generados puede ser demasiado alta o demasiado baja. 5. Puede existir una clara dependencia entre ellos. Por ejemplo: - Auto correlación entre números. - Números correlativamente más bajos o más altos que los adyacentes. - Varios números por encima de la media seguidos de otros por debajo de la misma.

CONSIDERACIONES PARA LA ELECCION DE GENERADORES
Aunque existe un gran número de métodos posibles para la generación de números aleatorios en una computadora, hay también unas ciertas consideraciones importantes para la elección de un método u otro.  La rutina debe ser rápida.  La rutina debe ser transportable entre diferentes ordenadores e, idealmente, a diferentes lenguajes de programación.  La rutina debe tener un ciclo suficientemente largo. Un ciclo representa la longitud de una secuencia antes que comiencen a repetirse los números en el orden anterior. La ocurrencia de repeticiones en los números obtenidos puede propiciar la no aceptación del generador.  Las secuencias de números aleatorios deben ser replicables. Partiendo del mismo número se debe poder obtener la misma secuencia  Los números obtenidos deben aproximarse a las propiedades estadísticas ideales de uniformidad e independencia.

METODOS DE GENERACION

Existen varios métodos para la generación de números aleatorios como:  Método de los cuadrados medios  Métodos de Congruencias  Métodos de Tausworthe Todo proceso de generación consta de tres fases:

[Semilla - Algoritmo - Validación]
P1: Obtener semilla (valores iniciales) P2: Aplicación de algún algoritmo de generación recursivo P3: Validación del conjunto de números generados (Pruebas de Aleatoriedad)

. TIPOS DE GENERADORES CONGRUENCIALES LINEALES Podemos distinguir dos tipos de estos generadores que se diferencian en el valor del incremento. aunque mencionó como posibilidad la idea de tomar c≠0. en la que no hay repeticiones de números y longitud de periodo al número de elementos de dicha subcadena. B.. pero dado el método utilizado para la generación de las mismas. por lo que interesan métodos que garanticen longitudes de periodo grandes. en el momento en el que se repite un valor ya empieza a repetirse todo el periodo.  c.2726 . P1: Obtener semilla (valores iniciales 445) P2: Aplicación de Algoritmos recursivos (elevar al cuadrado) P3: Validación del conjunto de datos generados Ejemplo: Consideremos la semilla 445 X 445 9802 792 2726 X2 1| 9802 | 5 96| 0792 | 04 6 | 2726 | 4 .......  m. METODO DE CONGRUENCIAS Hacia 1949.. incremento. siendo 0 <= a < m. .. dentro de la serie generada. En ellos el incremento. es el valor inicial o semilla.. módulo..A. c..C.. Lehmer introduce un método de generación de números aleatorios mediante el cual un término de la serie se obtiene como función del término inmediatamente anterior (xn=f(xn-1)).. Este tipo de generadores fueron los introducidos por Lehmer.. siendo 0 <= a < m. METODO DE LOS CUADRADOS MEDIOS Consiste en que cada número de una sucesión es producido tomando los dígitos medios de un número obtenido mediante la elevación al cuadrado.. multiplicador.... Multiplicativos. G..0792 0.. es 0.9802 0. La función aplicada es la siguiente: En el generador distinguimos cuatro elementos:  x0. N° Aleatorio 0..... La repetición de números en la serie puede ser aleatoria. Se llama periodo a la subcadena.  a...

el generador es elementos que se van obteniendo. Más independientes de la máquina Propiedades estadísticas de primer y segundo orden y n-distributividad mucho mejores que en congruenciales. Supongamos a=0. Q bits de espacio para siguiente entero (Q >= L). según bits por entero deseados. Si a=1.q ) Posteriormente estos bits agrupados en enteros de longitud L (L <= p). es decir. METODO DE TAUSWORTHE Caso de generador lineal congruencial general con m primo. Vamos obteniendo que un término es siempre la semilla más un múltiplo de c y todo módulo m. al tener que realizar menos operaciones en el cálculo de los elementos. En ellos el incremento es distinto de 0.a1xp-1 . . Desarrollando algunos de los Y así para todos los términos... Los valores de a=0 y a=1. producen series no aleatorias. C. Los primeros presentan la ventaja de ser más rápidos.G.ap es un polinomio primitivo módulo m Tausworthe: si m=2: secuencia de bits. la longitud de periodo que se alcanza en las series generadas por ellos son menores que la alcanzadas en las series generadas por los segundos. nos quedaría el generador de la forma xn+1 = c mod n. tenemos: . ai = 0 ó 1. . y esta serie no es aleatoria. Suelen emplearse trinomiales de forma xp + xq + 1. p > q  recurrencia: X i = X i- p xor X i . Sin embargo. que siempre saldría la constante c. Fueron introducidos por Thomson hacia 1958. Período máximo si xp .(p .C. Mixtos.

Esta subsecuencia de r+1 elementos representa un hueco de longitud r.PRUEBAS DE ALEATORIEDAD A. Hay que resaltar que los 2n números de la secuencia ( 4.r<d . hasta que se contabilicen n huecos. Y2j+1)=(q. Prueba de las distancias Este test se utiliza para examinar la longitud de los huecos entre ocurrencias de Uj en un cierto rango. Cuando los elementos se consideran agrupados en grupos de 4 o más. esto se cuenta para cada par de enteros (q. PRUEBA DE ALEATORIDAD (INDEPENDENCIA) 1. pero en este caso será un valor menor dado que para aplicar chi-cuadrado se tenía que cumplir que n³5d2 . Para aplicar el test de series.r) ocurre.Uj+r en la que Uj+r cae entre a y b pero no caen en el intervalo las otras U’s.b] rßr+1 jßj+1 FIN_MIENTRAS . 2. Claramente se podemos generalizar este test para aplicarlo a tríos. Si a y b son dos números reales con 0£a. contamos el número de veces que cada pareja (Y2j.… en vez de parejas. y se aplica el test de chi-cuadrado con k=d2 categorías y con probabilidad 1/d2 en cada categoría. ….b£1. El siguiente algoritmo se aplica a la secuencia ( 4. r) con 0£q. Al igual que en el test de frecuencias.1) para algunos valores de a y b y cuenta el número de huecos de longitud 0. Uj+1. Algoritmo (para contar longitudes de hueco) jß-1.…. para 0£j<n . se suelen utilizar otro tipo de test menos exactos como el test de póker o del máximo. t-1 y el número de huecos de longitud ³ t.sß0 PARA r=0 HASTA t cont(r)ß0 FIN_PARA MIENTRAS s<n HACER rß0 jßj+1 MIENTRAS ujÏ[a. podemos considerar las longitudes de subsecuencias consecutivas Uj. cuartetos. el valor de d debe ser elegido convenientemente. 1.2) en este test son usados como n observaciones. Prueba de las series De forma más general deseamos que los pares de números sucesivos que están uniformemente distribuidos y son independientes. sin embargo el valor de d debe ser reducido para evitar tener demasiadas categorías.

A menudo el test de huecos se aplica para a=0 ó b=1 para omitir una de las comparaciones que se hacen para determinar si a£uj<b. p1=p(1-p). . pt=(1-p)t. p2=p(1-p)2 . podemos aplicar el test de chi-cuadrado para k=t+1 categorías. preferiblemente más. es usual que cada uno de los valores de cont(r) sea 5 o más.…. …. Aquí p=b-a. la probabilidad de que a£uj<b. Los valores de n y t se han de elegir.SI r³t ENTONCES cont(t)ßcont(t)+1 SI NO cont(r)ßcont(r)+1 FIN_SI sßs+1 FIN_MIENTRAS Cuando el algoritmo anterior se ha ejecutado. y con probabilidades p0=p. cont(t). con frecuencia observada de cada categoría son los valores almacenados en cont(0).

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->