我想要一个指数分布的变量,这样做似乎很有效:
double exp_variate(double lambda){
return -log(my_random_function())/lambda;
}
其中 my_random_function 给出一个双 x,所以0 < x < 1
(严格)意味着我永远不会得到-log(0)
or 0
。我将如何获得一个排除 0 和 1 值的随机数。我敢肯定以前有人会问过这个问题,但我看不到。此外,我对生成指数分布值的其他方式持开放态度。
编辑:>到<