Bor*_*cky 2 ruby random statistics random-sample
在Ruby中,我需要使用均值来绘制指数分布m.请告诉我如何快速有效地完成它.例如.让我们:
m = 4.2
def exponential_distribution
rand( m * 2 )
end
Run Code Online (Sandbox Code Playgroud)
但是,当然,这段代码是错误的,而且,它只返回整数结果.我今天已经累了,请提示我一个好的解决方案.
如果你想从头开始,你可以使用反演.
def exponential(mean)
-mean * Math.log(rand) if mean > 0
end
Run Code Online (Sandbox Code Playgroud)
如果要使用rate对其进行参数化lambda,则平均值和速率是相互反转的.除以-lambda而不是乘以-mean.
从技术上讲它应该是log(1.0 - rand),但由于1.0 - rand具有统一的分布,你可以通过使用来保存一个算术运算rand.