Diskrétní simulace událostí v Pythonu
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Co je randomizace?
Poznámka: Počítače ze své podstaty nedokáží generovat skutečně náhodná čísla.
„Skutečně" náhodné generování
Pseudo-náhodné generování
Příklad: Továrna s ručním montážním úkolem

Lze použít několik statistických balíčků:
Balíček Random
Naše zaměření
Náhodné celé číslo v daném rozsahu
Metoda:
random.randint(start, end)
Příklad: Náhodné celé číslo mezi 3 (včetně) a 9 (nezahrnuto)
random.randint(3, 9)
5
Náhodné desetinné číslo v daném rozsahu
Metoda:
random.uniform(start, end)
Příklad: Náhodné desetinné číslo mezi 3 a 9
random.uniform(3, 9)
6.4557754
Náhodný výběr ze sekvence
Metoda:
random.sample(mylist, k=number_samples)
Příklad: 2 náhodné prvky ze seznamu
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
Zamíchání seznamu (změna pořadí prvků)
Metoda:
random.shuffle(mylist)
Příklad: Náhodné přeuspořádání prvků seznamu
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Gaussovo rozdělení
Metoda:
random.gauss(average, standard_dev)
Příklad: Pseudo-náhodné desetinné číslo s průměrem 100 a směrodatnou odchylkou 50
random.gauss(100, 50)
123.59383
Exponenciální rozdělení
Metoda:
random.expovariate(lambda)
lambda>0, výsledky [0, infinity]lambda<0, výsledky [-infinity, 0]Příklad: Pseudo-náhodné desetinné číslo s exponenciálním rozdělením, lambda = 1,5: random.expovariate(1.5)
0.2234355
Diskrétní simulace událostí v Pythonu