我正在开发一个包含一些随机事件的模拟基础设施(例如,以一定概率生成输出的源)。到目前为止,我一直在用随机。随机()功能。例如:
class source:
def output(self, x):
if(random.random()<=x):
return foo
a = []
for i in xrange(10)
a.append(source())
for i in xrange(1000):
for j in xrange(len(a)):
a[j].output()
据我所知,我列表“a”中的所有源都将从同一个伪随机LFSR源中获取随机数,因此a[0]将获得一个样本,然后a[1]将获得下一个样本,然后a[2]将获得下一个样本,然后a[2]等随机.ramdom()生成了一个真正的随机序列,我相信这仍然会产生10个iid值子集,但是,由于我假设python使用LFSR或类似的方案,其中每个后续样本都依赖于前一个样本,因此获取这些样本的几个子集可能是独立的,也可能不是完全相同的。在
我有两个问题:
我看了其他堆栈溢出的帖子,例如: Generate multiple independent random streams in python 但他们不回答我的问题。在
Python stdlib}:
random
模块是使用Mersenne Twister实现的。来自the docs for ^{我相信这符合你的独立性要求。查看the Wikipedia article,特别是“k-distribution”属性部分。在
相关问题 更多 >
编程相关推荐