Дискретно-подієве моделювання в Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Що таке рандомізація?
Варто знати: Комп'ютери за своєю конструкцією не здатні генерувати справді випадкові числа.
«Справжня» випадковість
Псевдовипадкова генерація
Приклад: Фабрика з ручним складанням

Можна використовувати кілька пакетів статистики:
Пакет Random
Наш фокус
Випадкове ціле у заданому діапазоні
Метод:
random.randint(start, end)
Приклад: Випадкове ціле між 3 (включно) і 9 (не включно)
random.randint(3, 9)
5
Випадкове число з рухомою комою у заданому діапазоні
Метод:
random.uniform(start, end)
Приклад: Випадкове число з рухомою комою між 3 і 9
random.uniform(3, 9)
6.4557754
Випадкова вибірка з послідовності
Метод:
random.sample(mylist, k=number_samples)
Приклад: 2 випадкові елементи зі списку
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
Перемішати список (змінити порядок елементів)
Метод:
random.shuffle(mylist)
Приклад: Випадкове переупорядкування елементів списку
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Нормальний (гаусовий) розподіл
Метод:
random.gauss(average, standard_dev)
Приклад: Псевдовипадкове число з середнім 100 і стандартним відхиленням 50
random.gauss(100, 50)
123.59383
Експоненційний розподіл
Метод:
random.expovariate(lambda)
lambda>0, результати [0, infinity]lambda<0, результати [-infinity, 0]Приклад: Псевдовипадкове число за експоненційним розподілом з lambda = 1.5: random.expovariate(1.5)
0.2234355
Дискретно-подієве моделювання в Python