我正在使用random.seed
在一定数量的迭代中生成伪随机数。但是,使用这种方法,对于相同的迭代次数,它每次都会生成相同的初始值。我想知道是否有一种方法可以编写代码来生成4个不同的随机初始值,这些初始值位于参数范围内的不同位置?例如我的代码如下:
import random
N=10
random.seed(N)
vx1 = [random.uniform(-3,3) for i in range(N)]
这每次都会生成起始vx1[0] = 0.428
。有没有一种方法可以编写代码以生成vx1
的四个不同初始值?因此vx1
的初始值可以等于0.428或其他3个值。那么每个初始值在该范围内还将具有以下9个随机数。
答案 0 :(得分:1)
我认为您对random.seed
的工作有基本的误解。 “随机”数发生器实际上是生成伪随机数的确定性系统。种子是可重现初始状态的标签。关键是要为同一种子生成相同的数字序列。
如果要创建一个由1,000,000个数字组成的可再现序列,请使用种子:
s = 10
N = 1000000
random.seed(s)
vx1 = [random.uniform(-3, 3) for i in range(N)]
如果您想每次生成一个不同序列,请每次使用不同的种子。最简单的方法是不调用seed
:
N = 1000000
vx1 = [random.uniform(-3, 3) for i in range(N)]