Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Generación de números aleatorios (pseudoaleatorios).

No description
by

Jose Manuel Candia Martinez

on 1 September 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Generación de números aleatorios (pseudoaleatorios).

Algoritmos para la generación de números pseudoaleatorios
Son algoritmos que se utilizan para la generación de números que sean lo más aleatorios posibles.

Algoritmos para la generación de números mas comunes.
Algoritmos no congruenciales:
Cuadrados medios.
Productos medios.
Multiplicador constante.
Entre estos métodos se pueden considerar:
Números generados por medio de una ruleta.
Números generados por medio de un dado o moneda.
Captación de ruido por micrófono y convirtiendo a números.
Utilización de imágenes de WebCam con procesamiento digital
algoritmos
No congruenciales:
Algoritmo de los
Cuadrados medios.

Algoritmos congruenciales:
Algoritmo
congruencial Aditivo
Generación de

números aleatorios

(pseudoaleatorios).

Problemas a evitar:
Que los números no estén uniformemente distribuidos: que haya muchos en un subintervalo y pocos en otro.
Que los números sean discretos en ves de continuos.
Características deseables:
La media de los números generados debe ser de lo mas cercano a 1/2.
La varianza de los números generados debe ser cercana a 1/12.
Generación de números aleatorios.
Métodos manuales, mecánicos y analógicos.
También se pueden recurrir al uso herramientas como:
Uso de guiás telefónicas y
Tablas de números aleatorios
La simulación es una técnica numérica para realizar experimentos en una computadora.
Estos experimentos involucran ciertos tipos de modelos matemáticos y lógicos que describen sistemas de negocios, económicos, sociales, biológicos, físicos o químicos a través de largo período de tiempo.
Pero para realizar una simulación correcta, es preciso generar una serie de números que sean aleatorios.
En la actualidad, estos números son generados por algoritmos determinísticos que requieren de parámetros de arranque.
Debido a que no es posible generar números realmente aleatorios por medio de calculos, se les considera como números pseudoaleatorios.
Este tipo de métodos generar números aleatorios como tal, ya que no se puede predecir el numero que se obtendrá en cada intento y su correlación es muy aceptable
Estos números generados deben ser verificados primero antes de ser utilizados, para saber si realmente son independientes y uniformes. Además de esto, se busca que tengan una vida suficientemente grande
Algoritmos congruenciales:
Aditivo
Multiplicativo
Lineal
Algoritmo
congruencial Multiplicativo
Algoritmo
congruencial Lineal
Algoritmo de los
Productos medios.
Algoritmo del
Multiplicador constante.
1.-Seleccionar la semilla (
X0
) 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
r1=0.D
dígitos del centro.
3.-Sea
Yi=
resultado de elevar
Xi
al cuadro; 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.
1.- Seleccionar una semilla (
X0
) con
D
dígitos
2.- Seleccionar una semilla (
X1
) con
D
dígitos
3.- Sea
Y0=(X0)(X1)
; sea
X2=
los
D
dígitos del centro y sea
r1=0.D
dígitos del centro
4.- Sea
Yi=(Xi)(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.

1.- Seleccionar una semilla (
X0
) con D dígitos (
D>3
)
2.- Seleccionar una semilla (
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
ri
deseados
Para este algoritmo se requiere seleccionar una secuencia de
n
números (
X1, X2, X3, X4,..., Xn
) y seleccionar una constante de modulo (
m
).
El algoritmo para números enteros es:

Xi=(Xi-1+Xi-2+Xi-3+...+X1)mod(m)

con
i=n+1,n+2,n+3,..., N
y para un numero discreto se calcula con:

ri=(Xi)/(m-1)
En este algoritmo se requiere seleccionar:
una semilla (
X0
)
un valor para el modulo (
m
) y que debe de ser múltiplo de
2
elevado a la
g
(
2^g
), donde
g
debe de ser entero
un valor constante (
a
) igual a
3+8k
, donde
k= 0,1,2,3,...,X0
y numero impar.
La ecuación recursiva es:

Xi+1=(aXi)mod(m)

con
i=0, 1, 2, 3,..., n
Para convertir el valor de Xi al intervalo de
[0,1)
se usa la ecuación:

ri=(Xi)/(m-1)

Este algoritmo es el mas utilizado. Y para este se requiere:
Seleccionar una semilla (
X0
)mayor a cero
Una contaste multiplicativa (
a
) mayor a cero y tal que
a=1+4k
donde k debe ser entero
Una constante aditiva (
c
) mayor a cero y relativamente primo a (
m
)
Un valor para modulo (
m
) mayor a cero y debe ser múltiplo de
2
elevado a la
g
(
2^g
), donde
g
debe ser entero.
La ecuación recursiva para números enteros de este método es:

Xi+1(aXi+c)mod(m)

con
i=1, 2, 3,..., n
Para obtener números pseudoaleatorios en el intervalo
[0,1)
.

ri=(Xi)/(m-1)
Notas finales:
No son los únicos algoritmos para la generación de números pseudoaleatorios
Todos los generadores deben ser sometidos a pruebas estadísticas para verificar su valides.
Los números generados no deben de tener tendencia.
Todos los números deben del intervalo deben de tener la misma probabilidad de ser obtenidos
No deben de confundirse la generación de números aleatorios con la de variables aleatorias.
Full transcript