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]示例: 使用参数 1.5 的指数分布生成伪随机浮点数:random.expovariate(1.5)
0.2234355
Python 中的离散事件模拟