Diskrete-Ereignis-Simulation mit Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Was ist Randomisierung?
Wichtig: Computer können konstruktionsbedingt keine echten Zufallszahlen erzeugen.
„Echte“ Zufallszahlen
Pseudozufallszahlen
Beispiel: Fabrik mit manueller Montageaufgabe

Mehrere Statistik-Pakete sind nutzbar:
Paket Random
Unser Fokus
Zufalls‑Integer in einem Bereich
Methode:
random.randint(start, end)
Beispiel: Zufalls‑Integer zwischen 3 (inkl.) und 9 (exkl.)
random.randint(3, 9)
5
Zufällige Fließkommazahl in einem Bereich
Methode:
random.uniform(start, end)
Beispiel: Zufällige Float zwischen 3 und 9
random.uniform(3, 9)
6.4557754
Zufallsstichprobe aus einer Sequenz
Methode:
random.sample(mylist, k=number_samples)
Beispiel: 2 zufällige Elemente aus einer Liste
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
Liste mischen (Reihenfolge ändern)
Methode:
random.shuffle(mylist)
Beispiel: Liste zufällig neu anordnen
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Gauß-Verteilung
Methode:
random.gauss(average, standard_dev)
Beispiel: Pseudozufällige Float mit Mittelwert 100 und Std.-Abw. 50
random.gauss(100, 50)
123.59383
Exponentialverteilung
Methode:
random.expovariate(lambda)
lambda>0, Werte [0, infinity]lambda<0, Werte [-infinity, 0]Beispiel: Pseudozufällige Float mit Exponentialverteilung und lambda 1.5: random.expovariate(1.5)
0.2234355
Diskrete-Ereignis-Simulation mit Python