用Java生成概率分布

时间:2015-11-16 07:24:10

标签: java math random probability-theory

我想了解如何生成概率分布。我正在研究随机最短路径问题,其中边缘具有相关概率分布以及每个概率的相关成本。我能够生成这样的(正常)分布:

0     1     2     3     4
0.15  0.2   0.18  0.22  0.25

通过遵循此question中提供的答案,所有概率的总和为1。现在,我需要生成其他分布,如bi-normal,log-normal和gamma。我非常感谢对这些发行版和(伪)代码的任何澄清,最好是在Java中生成它们。

2 个答案:

答案 0 :(得分:2)

正态分布: http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/distribution/NormalDistribution.html

记录正态分布: http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/distribution/LogNormalDistribution.html

伽玛分布: http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/distribution/GammaDistribution.html

我会远离100%的自制解决方案,例如你提到的问题。

以下是生成分发的一些代码。您必须自己对它们进行标准化,以使总和加起来为1.

for i in (randint(1,5),randint(9,15),randint(21,27)):
    print i

答案 1 :(得分:1)

快速搜索会显示Colt library及其distributions类套件。