5.3 random:伪随机数生成器
random模块基于Mersenne Twister算法提供了一个快速伪随机数生成器。原先开发这个生成器是为了向蒙特卡洛模拟生成输入,Mersenne Twister算法会生成大周期近均匀分布的数,因此适用于大量不同类型的应用。
5.3.1 生成随机数
random()函数从所生成的序列返回下一个随机的浮点值。返回的所有值都落在0<=n<1.0区间内。
import random
for i in range(5):
print('%04.3f' % random.random(),end=' ')
print()
重复运行这个程序会生成不同的数字序列。
运行结果:
0.472 0.723 0.926 0.650 0.536
要生成一个指定数值区间内的数,则要使用uniform()。
import random
for i in range(5):
print('{:04.3f}'.format(random.uniform(1,100)),end=' ')
print()
传入最小值和最大值,uniform()会使用公式min + (max - min) * random()来调整random()的返回值。
运行结果:
88.127 16.605 69.654 66.028 70.492