[Python
标准库
]random
——伪随机数生成器(一)
作用:实现了多种类型的伪随机数生成器。
Python
版本:
1.4
及以后版本
random
模块基于
MersenneTwister
算法提供了一个快速伪随机数生成器。原先
开发这个生成器是为了向蒙特卡洛模拟生成输入,
MersenneTwister
算法会生成有一个大
周期的近均匀分布的数,以适用于各种类型的应用。
生成随机数
random()
函数从所生成的序列返回下一个随机的浮点数值。
返回的所有值都落在
0
<=n
区间内。
importrandomforiinxrange(5):
print'%04.3f'%random.random(),print
重复运行这个程序会生成不同的数字序列。
要生成一个指定数值区间内的数,则要使用
uniform()
。
importrandomforiinxrange(5):
print'%04.3f'%random.uniform(1,100),print
传入最小值和最大值,
uniform()
会使用公式
min+(max-min)*random()
来
调整
random()
的返回值。
指定种子
每次调用
random()
会生成不同的值,在一个非常大的周期之后数字才会重复。这
对于生成唯一值或变化的值很有用,
不过有些情况下可能需要提供相同的数据集,
从而以不
同的方式处理。
对此,一种技术是使用一个程序来生成随机值,并保存这些随机值,以便通
过一个单独的步骤另行处理。
不过,
这对于量很大的数据来说可能并不实用,
所以
random
包含了一个
seed()
函数,用来初始化伪随机数生成器,使它能生成一个期望的值集。
import
randomrandom.seed(1)for
i
in
xrange(5):
'%04.3f'
%
random.random(),print