0

我想在 Java 中有界指数分布上生成随机数,但公式x = log(1-u)/(−λ)(这里 u 是 之间的均匀随机数[0,1))不会生成有界指数随机数。

请让我知道如何在 JAVA 中生成基于有界指数分布的随机数。

4

1 回答 1

0

Wrt 你的问题,你可以尝试重新调整你的 U(0,1) rng,比如范围 [A...B],L是 lambda

a = 1.0 - exp(-A*L); // so that log(1-a)/(-L) = A;
b = 1.0 - exp(-B*L); // so that log(1-b)/(-L) = B;

// now sampling 
u = a + (b - a) * Rng();
v = log(1-u)/(-L);

在你的情况下 A = 1, B = 100

顺便说一句,u并且1-u具有相同的分布,因此您可以使用log(u)而不是 ,为log(1-u)您节省了减法

于 2015-10-07T01:35:06.373 回答