0

Java で有界指数分布で乱数を生成したいのですが、式x = log(1-u)/(−λ)(ここで u は の間の一様乱数です[0,1)) は有界指数乱数を生成しません。

JAVA で境界付き指数分布ベースの乱数を生成する方法を教えてください。

4

1 に答える 1

0

あなたの質問を書いて、U(0,1) rng を再スケーリングしようとすることができます。たとえば、範囲 [A...B]Lはラムダです。

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

ところで、同じ分布u1-u持っているので、log(u)の代わりに使用できlog(1-u)、減算を節約できます

于 2015-10-07T01:35:06.373 に答える