2

我正在使用 Python(主要是 SimPy 包,但它与我认为的问题无关),对一些系统进行建模并运行模拟。为此,我需要生成遵循分布的随机数。到目前为止,通过导入随机数(例如从随机导入 *)并使用 expovariate 或 normalvariate 方法,我已经完成了一些分布,如指数和正态分布。但是,我找不到任何随机产生遵循 Erlang 分布的数字的方法。所以:

  1. 有没有我忽略的方法?
  2. 我必须导入其他库吗?
  3. 我可以做一些解决方法吗?(认为​​我可以使用指数分布来产生随机的“Erlang”数字,但我不确定如何。一段代码可能对我有帮助。

先感谢您!

4

2 回答 2

5

Erlang 分布是 gamma 分布的一个特例,它以 numpy.random.gamma (参考) 的形式存在。只需为 k ("shape") 参数使用一个整数值。另请参阅有关 scipy.stats.gamma 的 PDF、CDF 等函数。

于 2012-09-20T17:35:33.767 回答
3

正如前面的答案所述,erlang 分布是伽马分布的一个特例。但是,据我所知,您不需要该numpy软件包。可以在 python 中使用random.gammavariate(alpha, beta).

用法:

import random
print random.gammavariate(3,1)
于 2012-09-20T17:43:47.160 回答