前言
在实际的开发中,经常会用到随机数生成。而random库专用于随机数的生成,它是基于Mersenne Twister算法提供了一个快速伪随机数生成器。
本篇,将详细讲解各种场景之下随机数的生成应用。
生成随机数
对于随机数的生成,random库提供了很多函数,有的负责生成浮点数,有的负责生成整型,还有的可以生成区间内的随机数等。
函数名 | 参数 | 意义 |
---|---|---|
random | 无参数 | 随机生成[0-1]之间浮点数 |
uniform | 2个整型参数:最小数,最大数 | 随机生成最小最大之间的浮点数 |
randint | 2个整型参数:最小数,最大数 | 随机生成最小最大之间的整数 |
randrange | 3个整型参数:最小数,最大数,步长 | 随机生成最小最大之间的间隔步长整数 |
下面,我们来看看这些常用的随机数生成函数的应用:
import random
# 随机生成[0-1]之间浮点数
print("%04.2f" % random.random())
# 随机生成浮点数
print("%04.2f" % random.uniform(100, 200))
# 随机生成整型
print(random.randint(1, 200))
# 随机生成整型
print(random.randrange(0, 200, 5))
运行之后,效果如下:
以上是最常用的,也是最普遍的随机数用法。
种子
不知道读者发现没有,通过上面这些方法虽然能生成随机数,但是随机数都是无序的。这次你运行可能开头是一个数,结尾是一个数,下次运行开头和结尾又会不一样。这对于需要固定序列的随机数需求而言,显然不合适。
所以,random库给我们提供了种子函数:random.seed()。种子会控制由公式生成的第一个值,由于公式是确定的,所以每次只要种子相同,随机数每次生成的序列值就相同。
import random
random.seed(1)
# 随机生成浮点数
print("%04.2f" % random.random())
# 随机生成浮点数
print("%04.2f" % random.uni