Simulación de eventos discretos en Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
¿Qué es la aleatorización?
Importante: Los ordenadores no generan números realmente aleatorios por diseño.
Generación «realmente» aleatoria
Generación seudoaleatoria
Ejemplo: Fábrica con una tarea de montaje manual

Se pueden usar varios paquetes de estadística:
Paquete Random
Nuestro foco
Entero aleatorio en un rango
Método:
random.randint(start, end)
Ejemplo: Entero aleatorio entre 3 (incluido) y 9 (excluido)
random.randint(3, 9)
5
Float aleatorio en un rango
Método:
random.uniform(start, end)
Ejemplo: Float aleatorio entre 3 y 9
random.uniform(3, 9)
6.4557754
Muestra aleatoria de una secuencia
Método:
random.sample(mylist, k=number_samples)
Ejemplo: 2 elementos aleatorios de una lista
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
Barajar una lista (reordenar elementos)
Método:
random.shuffle(mylist)
Ejemplo: Reordenado aleatorio de elementos
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Distribución gaussiana
Método:
random.gauss(average, standard_dev)
Ejemplo: Float seudoaleatorio con media 100 y desviación estándar 50
random.gauss(100, 50)
123.59383
Distribución exponencial
Método:
random.expovariate(lambda)
lambda>0, resultados [0, infinity]lambda<0, resultados [-infinity, 0]Ejemplo: Float seudoaleatorio con distribución exponencial y lambda 1.5: random.expovariate(1.5)
0.2234355
Simulación de eventos discretos en Python