random 模块,实现了各种分布下的伪随机数生成器。对于整数,可以从一个范围中随机挑选;对于序列,可以随机挑选其中的元素但不改变原序列,也可以对序列中的元素进行重新排列。此外,模块还封装了各种分布函数(uniform, normal (Gaussian), lognormal, negative exponential, gamma, beta distributions)等
模块中生成随机数主要有以下几种方法:
random.random():生成[0.0, 1.0)中一个随机浮点数
random.uniform(a, b):生成 a 到 b(包括a,b)之间的一个随机浮点数
random.randrange(stop):生成 range(stop) 中一个整数
random.randrange(start, stop[, step]):生成 range(start, stop[, step]) 中一个整数
random.randint(a, b):生成 a 到 b(包括a,b)之间的一个整数
random.choice(seq):从 seq 序列中随机选择一个元素
random.shuffle(x[, random]):对序列 x 进行洗牌,重新排列,但是由于总排列数太多,会有一些排列永远不会生成
random.sample(population, k):从序列 population 中随机采样 k 个元素,返回一个列表,元素按挑选次序排列
模块内置的各种概率分布不一一列举,详见 https://docs.python.org/2/library/random.html
此外模块还提供自定义 random.Random 对象,但是没有看懂,和随机算法有关
----------------
坚持每天学习一点点