在python中生成多个独立的随机流

问题描述 投票:4回答:2

我想在python中生成多个随机数流。我正在编写一个用于模拟队列系统的程序,并希望一个流用于到达间隔时间,另一个流用于服务时间等等。

numpy.random()从全局流中生成随机数。

在matlab中有something called RandStream,它使我能够创建多个流。

有没有办法在Python中创建类似RandStream的东西

python numpy random
2个回答
10
投票

Numpy和内部随机生成器都具有可实例化的类。

对于random

import random
random_generator = random.Random()
random_generator.random()
#>>> 0.9493959884174072

而对于Numpy:

import numpy
random_generator = numpy.random.RandomState()
random_generator.uniform(0, 1, 10)
#>>> array([ 0.98992857,  0.83503764,  0.00337241,  0.76597264,  0.61333436,
#>>>         0.0916262 ,  0.52129459,  0.44857548,  0.86692693,  0.21150068])

0
投票

Veedrac的回答没有解决人们如何产生独立的流。

我能找到生成独立流的最好方法是使用numpy的RandomState替换。这是由RandomGen package提供的。

它支持independent random streams,但它们使用三个随机数生成器之一:PCG64,ThreeFry或Philox。如果你想使用更传统的MT19937,你可以依靠jumping

© www.soinside.com 2019 - 2024. All rights reserved.