【发布时间】:2016-02-08 02:43:57
【问题描述】:
我想生成一个从a 到b 的随机数。问题是,数字必须以指数分布给出。
这是我的代码:
public double getDouble(double low, double high)
{
double r;
(..some stuff..)
r = rand.NextDouble();
if (r == 0) r += 0.00001;
return (1 / -0.9) * Math.Log(1 - r) * (high - low) + low;
}
问题是 (1 / -0.9) * Math.Log(1 - r) 不在 0 和 1 之间,所以结果不会在 a 和 b 之间。有人可以帮忙吗?提前致谢!
【问题讨论】:
-
这个问题可能更适合math.stackexchange.com
标签: c# distribution exponential