Дискретно-событийное моделирование на 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