版权声明:大佬们转载时别忘了我哦!!! https://blog.csdn.net/sun9979/article/details/88785917
首先来说明一下,随机数是在各种复杂条件下产生的确定值,计算机无法产生真正的随机数,random库产生的是伪随机数,我们也常把伪随机数称为随机数。
1、random库概述
random库是使用随机数的Python标准库
- 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
- random库主要用于生成随机数
- 使用random库:import random
2、random库中的常用函数(共8个)
- 基本随机数函数:seed(),random()
- 扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
3、基本随机函数
随机数种子-------->梅森旋转算法--------->随机序列(确定的种子,产生的随机序列是不变的)
seed(a=None) #初始化给定的随机数种子,默认为当前系统时间
random.seed(10) #产生种子10对应的序列
random() #生成一个[0.0,1.0]之间的随机小数
random.random()
>>> import random
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.random()
0.4288890546751146
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.seed(10)
>>> random.random()
0.5714025946899135
如果我们要复现随机过程的话,一般seed的参数是要给的,而不能使用系统时间,系统时间精确到微秒。
4、扩展随机数函数
randint(a,b) #生成一个[a,b]之间的整数
>>> random.randint(10,100)
64
randrange(m,n[,k]) #生成一个[m,n)之间以k为步长的随机整数
>>> random.randrange(10,100,10)
80
getrandbits(k) #生成一个k比特长的随机整数
>>> random.getrandbits(16)
37885
uniform(a,b) #生成一个[a,b]之间的随机小数
>>> random.uniform(10,100)
11.334920142209832 #python中浮点数的范围为小数点后面16位
choice(seq) #从序列seq中随机选择一个元素
>>> random.choice([1,2,3,4,5,6,7,8,9])
8
shuffle(seq) #将序列seq中元素随机排列,返回打乱后的序列
>>> s=[1,2,3,4,5,6,7,8,9];
>>> random.shuffle(s)
>>> print(s)
[3, 9, 7, 4, 1, 2, 6, 5, 8]