在 Java 中从数组生成对数正态分布

use*_*390 2 java arrays random logging

我没有找到有关该主题的任何帮助,因此我发布了一个有关它的新问题。我有一个包含三个值 {min、average、standard dev.} 的变量。如何生成该数组的对数正态分布,该分布将随机给出对数正态分布的时间值。另外,如果我运行 1000 次,我会想从这 1000 次中的每一次的对数正态分布中随机获取一个时间值。我该如何用java代码编写这个?另外我猜运行它 1000 次会给我数组中平均值的平均值?

Nis*_*nth 5

首先,生成标准正态值并将其转换为给定参数的正态分布。最后,提高到指数以获得给定均值和标准差的对数正态分布。

Random rng = new Random(0);
double[] logNormalValues = new double[1000];

for (int i = 0; i < logNormalValues.length; i++) {
    double stdNormal   = rng.nextGaussian();
    double normalValue = stdDev * stdNormal + mean;

    logNormalValues[i] = Math.exp(normalValue);
}
Run Code Online (Sandbox Code Playgroud)