2. Antes de abordar la generación de números
aleatorios se mencionará su utilidad.
Para que sirven los números aleatorios en el campo
de la simulación.
En el entorno(el mundo, universo) se presentan
sucesos que dependen de diferentes fenómenos,
circunstancias. Muchos de estos sucesos son
impredecibles y se presentan de un momento a otro
VÍCTOR VIERA BALANTA
Números aleatorios
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
3. La simulación, apoyada en los números aleatorios, trata de
“copiar”, “imitar", "seguir” este comportamiento donde
se presentan eventos periódicamente. Eventos que
dependen de determinadas circunstancias.
Los números aleatorios, por su forma de presentarse, de
generarse se utilizaran para crear modelos que se apoyen
en estos para generar eventos, sucesos con una
determinada periodicidad.
En otras palabras, se puede afirmar que los números
aleatorios serán el “motor” generador de eventos, sucesos
para un determinado modelo computacional.
VÍCTOR VIERA BALANTA
Números aleatorios
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
4. VÍCTOR VIERA BALANTA
Números aleatorios
NUMEROS ALEATORIOSComportamiento,
Dinamismo
Modelo
Figura 1. Los números aleatorios proporcional el
comportamiento del Modelo.
Los números aleatorios permiten generar eventos, sucesos
similar al mundo real. Los números aleatorios estarán en el
intervalo (0,1)
5. VÍCTOR VIERA BALANTA
Números aleatorios
Von Neumann fue el primero en plantear la generación de
números que parecieran aleatorios, por medio de las
operaciones matemáticas del computador (Ríos David, 2009)
Generadores Congruencia les:
Xn+1 = (aXn + b ) modulo m
ri = Xn+1/m
Donde a, b y m son números, preferiblemente primos, que
ayudan a la adecuada generación de números. El número a es
denominado multiplicador , b sesgo y m nos da el máximo
periodo
6. VÍCTOR VIERA BALANTA
Números aleatorios
Ejemplo:
Generar números con a=9,b=0,m=13, semilla X0 = 4
Xn+1 = (aXn + b ) modulo m
ri = Xn+1/m
--------------------------------------------------------------------------
Xn+1 = (9*4 + 0 ) modulo 13
Xn+1 = (36) modulo 13=10
ri = 10/13 = 0,76923(primer número)
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
7. VÍCTOR VIERA BALANTA
Números aleatorios
Ejemplo:
Generar números con a=9,b=0,m=13, semilla X0 = 4
Xn+1 = (aXn + b ) modulo m
ri = Xn+1/m
--------------------------------------------------------------------------
Xn+1 = (9*10 + 0 ) modulo 13
Xn+1 = (90) modulo 13=12
ri = 12/13 = 0,9230(segundo número)
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
8. VÍCTOR VIERA BALANTA
Números aleatorios
Ejemplo:
Generar números con a=9,b=0,m=13, semilla X0 = 4
Xn+1 = (aXn + b ) modulo m
ri = Xn+1/m
--------------------------------------------------------------------------
Xn+1 = (9*12 + 0 ) modulo 13
Xn+1 = (108) modulo 13=4
ri = 4/13 = 0,3076(tercer número)
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
9. VÍCTOR VIERA BALANTA
Números aleatorios
Ejemplo:
Generar números con a=9,b=0,m=13, semilla X0 = 4
Xn+1 = (aXn + b ) modulo m
ri = Xn+1/m
--------------------------------------------------------------------------
Xn+1 = (9*4 + 0 ) modulo 13
Xn+1 = (36) modulo 13=10
ri = 10/13 = 0,7692(cuarto número)
se repitió el número
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
10. VÍCTOR VIERA BALANTA
Números aleatorios
Condiciones para un buen generador de números
secuenciales (Raczynski Stanuslaw,1993, pag24).
1. La distribución de los números debe ser uniforme en el
intervalo [0,1]
2. Los números deben ser independientes dentro de toda la
serie generada
3. El ciclo del generador debe ser bastante grande, si se repite
un número debe ser después de generar muchos números
aleatorios.
4. Toda la serie debe ser repetible, posibilidad de correr el
mismo programa varias veces con la misma serie de
números aleatorios .
5. El generador debe ser rápido y ocupar poco espacio en la
memoria.
11. VÍCTOR VIERA BALANTA
Números aleatorios
El lenguaje de programación Java cuenta con una clase
“Random “que permite generar números aleatorios.
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
12. VÍCTOR VIERA BALANTA
Números aleatorios
La salida del programa con diferentes semillas :
Semilla igual a 10 Semilla igual a 15
0.7304302967434272
0.2578027905957804
0.059201965811244595
0.24411725056425315
0.8188090228552316
0.37061112601364143
0.8562829329414597
0.7149846763958975
0.2872568868144405
0.9162469512617625
0.7299823878824023
0.10552478460052028
0.9106890605104496
0.15551743026783382
0.6698621362863425
0.7351050399591992
0.7488610539585506
0.4901039491087238
0.6273188857680094
0.8954117834298776
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
13. VÍCTOR VIERA BALANTA
Números aleatorios
Ejemplo de la utilización de números aleatorios:
Se necesita simular la tirada de un dado simétrico.
El dado tiene 6 caras con los números de 1 al 6 en cada cara
http://salondellibroinfantilyjuvenil.wordpress.com/category/uncategorized/page/3/, Marzo 2012
Fuente imágenes : http://www.efeblog.com/5-juegos-de-mesa-imprescindibles-3304/dados/#.T12fdXlYhu4 Marzo, 2012
14. VÍCTOR VIERA BALANTA
Números aleatorios
Para simular este comportamiento de la lanzada de un dado
se utilizará la distribución uniforme, la cual permite “imitar” el
comportamiento de valores al azar en un rango. En este caso
1-6
X = a+(b-a)*ri
Donde
a, para este ejemplo es 1
b,es 6y ries un número aleatorio entre 0 y 1
15. Antes de mostrar el en java programa se puede hacer un
calculo manual
X = a+(b-a)*ri
Se seleccionar un número aleatoria ya generado (0.7304)
X = 1+(6-1)* 0.7304
X = 1+(5)* 0.7304
X = 1+(5)* 0.7304
X = 1+(3.652) = 4.652 = 5
Cinco (5) seria el primer resultado de tirar
el dado virtual
VÍCTOR VIERA BALANTA
Números aleatorios
16. VÍCTOR VIERA BALANTA
Números aleatorios
Programa en el lenguaje de programación Java
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
17. VÍCTOR VIERA BALANTA
Números aleatorios
Salidas del Programa en el lenguaje de programación Java que
simula arrojar un dado 5 veces
Semilla 15 Semilla 10 Semilla 11
el resultado es: 5.0
el resultado es: 2.0
el resultado es: 6.0
el resultado es: 2.0
el resultado es: 4.0
el resultado es: 5.0
el resultado es: 2.0
el resultado es: 1.0
el resultado es: 2.0
el resultado es: 5.0
el resultado es: 5.0
el resultado es: 3.0
el resultado es: 4.0
el resultado es: 1.0
el resultado es: 2.0
18. VÍCTOR VIERA BALANTA
Números aleatorios
Conclusión
Los números aleatorios simular el comportamiento, como el
lanzar un dado.
Los números aleatorios brindan ese comportamiento
“impredecible”, y le dan “vida” a un modelo de simulación
para que, por medio del modelo, se pueda experimentar,
comprender, interactuar con una abstracción de sistema real.
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E
19. VÍCTOR VIERA BALANTA
Números aleatorios
Bibliografía
Ríos D, Sixto, Martin J, Jiménez A, (2009) Simulación Métodos y Aplicaciones, Alfa
Omega-Ra-Ma.
Ríos D, Rios Sixto, Martin J, (2000) Simulación Métodos y Aplicaciones, Alfa Omega-
Ra-Ma.
Raczynski S, (1993) Simulación por Computadora, Megabyte, Grupo Noriega
Editores.
Guasch A, Piera M, Casanovas J,Figueras J, (2005) Modelado y Simulación,
Aplicaciones procesos logísticos de fabricación y servicios, Alfa Omega
Creus A, (1989) Simulación de procesos con Pc, Marcombo S.A
http://www.youtube.com/user/vieravictor01
http://www.youtube.com/playlist?list=PL2FC180FECDC9635E