如果您不能/不想使用库:在这种情况下,最简单的方法是计算出CDF(与维基百科进行比较),即函数F:x -> P(X < x)。然后,您可以使用您喜欢的生成器在[0,1]上生成均匀随机数y,并解决y = F(x)。这些x的序列具有相同的分布,并遵循幂律分布。编辑:答案在那里。
这个库:https://github.com/pbloem/powerlaws 包含一个幂律生成器,使用方法如下:List<Double> data = new Continuous(3.14, 2.5).generate(1000); 这将使用3.14作为最小值和2.5作为指数,从幂律分布生成1000个点。它还具有离散分布和连续近似的离散分布。所有这些分布也可适合现有数据。 (免责声明:我编写了此库)。