2010-07-15 77 views

回答

3

也许Colt Java库可以提供帮助。它根据许多distributions生成随机数。

4

如果你不能/不想使用图书馆:

在这种情况下,最容易的办法就是制定出CDF(检查对Wikipedia),即函数F :x - > P(X < x)。然后用你最喜欢的发生器在[0,1]上画出均匀的随机数y,然后求解y = F(x)。这种x的序列是相同分布的,并遵循幂律分布。

编辑:the answer is there

+0

+1链接到其他答案。 – Stephan202 2012-09-14 14:39:13

1

阿帕奇百科全书数学的lib是我的系统上很慢(也许我错过了一些东西......)。这个独立的类PowerLaw.java为我工作。

1

该库:https://github.com/pbloem/powerlaws包含幂定律发生器,使用如下:

List<Double> data = new Continuous(3.14, 2.5).generate(1000); 

这产生从幂律分布1000个点以3.14作为最小值和2.5作为指数。它也具有离散分布和连续近似的离散分布。所有这些分配也可以适合现有的数据。

(免责声明:我写这个库)。