📅  最后修改于: 2023-12-03 14:46:55.201000             🧑  作者: Mango
random.seed(a=None, version=2)
用于指定随机数生成器的种子,生成随机数之前,通过种子确定该随机数生成器的初始状态,从而保证了运行结果可重复。
a
可选参数,默认为None。当a
为None时,使用当前的系统时间作为种子。当a
为int类型时,种子为a。当a
为str类型时,先使用hashlib.md5()算法将该串转换成16进制数字,再将这些数字转化成10进制数作为种子。当a
为bytearray类型时,先使用hashlib.sha512()算法将该数组转换成字节串,再将该字节串转化成10进制数作为种子。
version
可选参数,int类型,默认是2,用于设置种子生成的随旧程度。在Python2中,version=1;在Python3中,version=2。在Python3.2之前,version=1时,使用的是版本1的随机数生成器,版本2时使用的是版本2,对于Python3.2及之后的版本, version=1不再支持。
该函数没有返回值。
import random
random.seed(10)
a = random.random()
print(a)
random.seed(10)
b = random.random()
print(b)
该段代码输出结果:
0.5714025946899135
0.5714025946899135
在程序中调用random.seed(10)
指定种子,两次调用random.random()
函数得到的结果一致,因为使用的是同一个种子。如果不指定种子,两次得到的结果会不一样。
random.seed()
参数类型有所不同,在使用时要注意。import random
random.seed(10)
a = random.random()
print(a)
random.seed(10)
b = random.random()
print(b)
random.seed(10)
c1 = random.random()
c2 = random.random()
c3 = random.random()
print(c1, c2, c3)
random.seed(20)
d = random.random()
print(d)
该段代码输出结果:
0.5714025946899135
0.5714025946899135
0.5714025946899135 0.4288890546751146 0.5780913011344704
0.9056396761745207
import random
random.seed(10)
a1 = random.random()
random.seed(20)
a2 = random.random()
print(a1, a2)
该段代码输出结果:
0.5714025946899135 0.9056396761745207