我在代码中遇到了这一行:
numpy_rng = numpy.random.RandomState(1234)
我在the documentation中看到numpy.random.RandomState
是一种可以找到许多概率分布的库。然而,我不理解论证1234。有人请解释一下?
答案 0 :(得分:1)
声明:
r = numpy.random.RandomState(1234)
创建一个Mersenne Twister随机数生成器,并将其绑定到名称r。 Mersenne Twister是一种非常有用的算法,用于生成适合大规模科学模拟的伪随机数。
传递给numpy.random.RandomState
的参数是生成器的种子,它指定伪随机数序列的起始点。如果你使用相同的东西种下两个不同的生成器,你将获得相同的结果序列。 uniform()方法返回0到1之间的伪随机数。观察:
>>> import numpy.random
>>> r = numpy.random.RandomState(1234)
>>> r.uniform()
0.1915194503788923
>>> r.uniform()
0.6221087710398319
>>> r2 = numpy.random.RandomState(1235)
>>> r2.uniform()
0.9537625822517408
>>> r2.uniform()
0.9921264707372405
>>> r3 = numpy.random.RandomState(1234)
>>> r3.uniform()
0.1915194503788923
>>> r3.uniform()
0.6221087710398319
保存用于构造RandomState
对象的种子的值将允许您稍后使用相同的伪随机数序列重新运行模拟。
答案 1 :(得分:0)
RandomState
是一个伪随机数生成器,这意味着它不能生成真正的随机数,但只能生成"看起来"随机。要做到这一点,你需要给它一些初始的种子"它可以用来生成数字。
你所指的论点是种子;它应该最好是每个函数调用都是唯一的,因为如果它使用相同的种子调用两次,它将生成完全相同的数字序列。