Simulação de Eventos Discretos em Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
O que é randomização?
Vale notar: Computadores, por design, não geram números realmente aleatórios.
Geração “verdadeiramente” aleatória
Geração pseudoaleatória
Exemplo: Fábrica com tarefa manual de montagem

Vários pacotes de estatística podem ser usados:
Pacote Random
Nosso foco
Inteiro aleatório em um intervalo
Método:
random.randint(start, end)
Exemplo: Inteiro aleatório entre 3 (incluído) e 9 (não incluído)
random.randint(3, 9)
5
Número float aleatório em um intervalo
Método:
random.uniform(start, end)
Exemplo: Float aleatório entre 3 e 9
random.uniform(3, 9)
6.4557754
Amostra aleatória de uma sequência
Método:
random.sample(mylist, k=number_samples)
Exemplo: 2 elementos aleatórios de uma lista
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
Embaralhar uma lista (reordenar elementos)
Método:
random.shuffle(mylist)
Exemplo: Reordenando elementos aleatoriamente
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Distribuição normal (gaussiana)
Método:
random.gauss(average, standard_dev)
Exemplo: Float pseudoaleatório com média 100 e desvio padrão 50
random.gauss(100, 50)
123.59383
Distribuição exponencial
Método:
random.expovariate(lambda)
lambda>0, resultados em [0, infinity]lambda<0, resultados em [-infinity, 0]Exemplo: Float pseudoaleatório usando distribuição exponencial com lambda 1.5: random.expovariate(1.5)
0.2234355
Simulação de Eventos Discretos em Python