Simulazione a eventi discreti in Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Cos'è la randomizzazione?
Da sapere: i computer, per progetto, non generano numeri davvero casuali.
Generazione davvero casuale
Generazione pseudo-casuale
Esempio: Fabbrica con attività di assemblaggio manuale

Si possono usare vari pacchetti statistici:
Pacchetto Random
Focus
Intero casuale in un intervallo
Metodo:
random.randint(start, end)
Esempio: Intero casuale tra 3 (incluso) e 9 (escluso)
random.randint(3, 9)
5
Float casuale in un intervallo
Metodo:
random.uniform(start, end)
Esempio: Float casuale tra 3 e 9
random.uniform(3, 9)
6.4557754
Campione casuale da una sequenza
Metodo:
random.sample(mylist, k=number_samples)
Esempio: 2 elementi casuali da una lista
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
Mescolare una lista (riordinare gli elementi)
Metodo:
random.shuffle(mylist)
Esempio: Riordino casuale degli elementi
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Distribuzione gaussiana
Metodo:
random.gauss(average, standard_dev)
Esempio: Float pseudo-casuale con media 100 e deviazione standard 50
random.gauss(100, 50)
123.59383
Distribuzione esponenziale
Metodo:
random.expovariate(lambda)
lambda>0, risultati [0, infinity]lambda<0, risultati [-infinity, 0]Esempio: Float pseudo-casuale con distribuzione esponenziale e lambda 1.5: random.expovariate(1.5)
0.2234355
Simulazione a eventi discreti in Python