这里random.seed()的作用是啥
Python标准库提供的Random类的随机函数其实都是伪随机的,伪随机数是以相同的概率从一组有限的数字中选取的,随机数的生成是从种子值开始
seed() 函数的作用改变随机数生成器的种子
seed()函数有两个参数,第一个是改变随机数生成器的种子,默认为None,第二个参数为版本号,默认为 2
1. 如果使用相同的seed()值,则每次生成的随机数都相同
2. 如果不了解其原理,不必特别去设定seed,Python会帮你选择seed
3. 设置的seed()值仅一次有效
Python之random.seed()用法:https://www.cnblogs.com/xiangxiaolin/p/11575663.html
如有帮助,请采纳。点击我回答右上角【采纳】按钮。
计算机中,没有真正意义上的随机数,所有的随机数都是通过计算得出的,也就是说,当随机数初始种子一样,他的随机数是一致的
import random
random.seed(1)
a = [random.randint(1, 100) for n in range(100)]
random.seed(1)
b = [random.randint(1, 100) for n in range(100)]
print(a)
print(b)
[18, 73, 98, 9, 33, 16, 64, 98, 58, 61, 84, 49, 27, 13, 63, 4, 50, 56, 78, 98, 99, 1, 90, 58, 35, 93, 30, 76, 14, 41, 4, 3, 4, 84, 70, 2, 49, 88, 28, 55, 93, 4, 68, 29, 98, 57, 64, 71, 30, 45, 30, 87, 29, 98, 59, 38, 3, 54, 72, 83, 13, 24, 81, 93, 38, 16, 96, 43, 93, 92, 65, 55, 65, 86, 25, 39, 37, 76, 64, 65, 51, 76, 5, 62, 32, 96, 52, 54, 86, 23, 47, 71, 90, 100, 87, 95, 48, 12, 57, 85]
[18, 73, 98, 9, 33, 16, 64, 98, 58, 61, 84, 49, 27, 13, 63, 4, 50, 56, 78, 98, 99, 1, 90, 58, 35, 93, 30, 76, 14, 41, 4, 3, 4, 84, 70, 2, 49, 88, 28, 55, 93, 4, 68, 29, 98, 57, 64, 71, 30, 45, 30, 87, 29, 98, 59, 38, 3, 54, 72, 83, 13, 24, 81, 93, 38, 16, 96, 43, 93, 92, 65, 55, 65, 86, 25, 39, 37, 76, 64, 65, 51, 76, 5, 62, 32, 96, 52, 54, 86, 23, 47, 71, 90, 100, 87, 95, 48, 12, 57, 85]
你可以自己尝试复现随机数重复的问题,seed就是设置种子的办法,通常默认的种子是根据计算机时间生成的,每次初始化的时候自动设置根据时间生成的种子
我们调用 random.random() 生成随机数时,每一次生成的数都是随机的。但是,当我们预先使用 random.seed(x) 设定好种子之后,其中的 x 可以是任意数字,如10,这个时候,先调用它的情况下,使用 random() 生成的随机数将会是同一个。