python(SimPy)生成遵循erlang分布的随机数

python(SimPy)生成遵循erlang分布的随机数,python,random,distribution,simpy,Python,Random,Distribution,Simpy,我正在使用Python(主要是SimPy包,但它与我认为的问题无关),对一些系统进行建模并运行仿真。为此,我需要生成服从分布的随机数。到目前为止,我已经通过导入随机变量(例如从随机导入*)和使用指数变量或正态变量方法,对一些分布(如指数分布和正态分布)做了很好的处理。然而,我找不到任何随机生成服从Erlang分布的数字的方法。因此: 有什么方法是我忽略的吗 我必须导入其他库吗 我能做些变通吗?(我想我可以使用指数分布来生成随机的“Erlang”数,但我不确定如何生成。一段代码可能会对我有所帮助

我正在使用Python(主要是SimPy包,但它与我认为的问题无关),对一些系统进行建模并运行仿真。为此,我需要生成服从分布的随机数。到目前为止,我已经通过导入随机变量(例如从随机导入*)和使用指数变量或正态变量方法,对一些分布(如指数分布和正态分布)做了很好的处理。然而,我找不到任何随机生成服从Erlang分布的数字的方法。因此:

  • 有什么方法是我忽略的吗
  • 我必须导入其他库吗
  • 我能做些变通吗?(我想我可以使用指数分布来生成随机的“Erlang”数,但我不确定如何生成。一段代码可能会对我有所帮助

  • 提前感谢!

    Erlang分布是gamma分布的一个特例,它以numpy.random.gamma()的形式存在。只需为k(“形状”)使用一个整数值即可参数。另请参见关于scipy.stats.gamma的PDF、CDF等函数。

    正如前面的答案所述,erlang分布是gamma分布的特例。但是,据我所知,您不需要
    numpy
    包。可以使用
    rando在python中生成gamma分布的随机数m、 伽马变量(α,β)

    用法:

    import random
    print random.gammavariate(3,1)
    

    谢谢。在random中,我只找到了“gammavariate(self,alpha,beta)”这一个吗?如果是,我应该如何设置alpha和beta来匹配需要μ和σ作为参数的Erlang分布?是的,如果没有numpy,你可以使用它。但是请注意,当alpha=k时,beta是1/theta(这只是描述Gamma分布参数的另一种常用方法。谢谢,但请查看我在Harel文章中关于如何使用Alpha和Beta@georgeα=κ和β=1/θ非常感谢!我想接受两个答案,但我只能接受一个,因为哈雷尔先回答了。。