python提供了一个库模块,其中包含一些有用的函数用来生成(伪)随机数。该模块中的函数根据模块加载的日期和时间推导出初始种子值,因此每次运行程序时都会获得不同的种子值。这意味着你也会获得唯一的伪随机数序列。
常用的主要是以下两个函数:randrange和random。
1. randrange函数介绍
randrange函数从给定的范围中选择一个伪随机整数。它可以用一个、两个或三个参数,来确定一个范围,就像range函数一样。例如,randrange(1, 6)
从范围[1,2,3,4,5]中返回某个数字,而randrangre(5,105,5)
返回5~100之间的5的倍数(包括5和100,但不包括105。)
对randrange的每次调用生成一个新的随机数。下面的交互式会话展示了randrange的效果:
>>> from random import randrange
>>> randrange(1, 6)
3
>>> randrange(1, 6)
3
>>> randrange(1, 6)
5
>>> randrange(1, 6)
5
>>> randrange(1, 6)
5
>>> randrange(1, 6)
1
2. random函数
random函数用于生成伪随机浮点值。它不需要任何参数,返回均匀分布在0和1之间(包括0,但不包括1)。下面是交互式例子:
>>> from random import random
>>> random()
0.54146406725
>>> random()
0.221621655814
>>> random()
0.928877335157
>>> random()
0.258660828538
注:
伪随机数发生器从某个从某个“种子”值开始工作。该值被送入一个函数以产生“随机数”。下次需要一个随机数时,将当前值反馈到该函数中以产生一个新的数字。通过仔细选择的函数,得到的值序列基本上是随机的。如果以相同的种子值重新启动该过程,那么最终会出现完全相同的数字序列。这一切都取决于生成函数和种子值。