2010-07-15 6 views
3

Я пытаюсь создать сеть p2p в соответствии с распределением закона власти. Как генерировать распределение закона власти в java? есть ли у него библиотека?Java: распределение права власти

спасибо :)

ответ

3

Может библиотека Colt Java может помочь. Он генерирует случайные числа в соответствии со многими distributions.

4

Если вы не можете/не хотите использовать библиотеку:

В этом случае самый легкий путь, чтобы отработать CDF (проверить это против Wikipedia), то есть функция F : x -> P (X < x). Затем вы рисуете равномерные случайные числа y на [0,1] с вашим любимым генератором, и вы решаете y = F (x). Последовательность таких х одинаково распределяется и следует за распределением степенного закона.

Edit: the answer is there

+0

+1 для ссылки на другой ответ. – Stephan202

1

Apache Commons Math 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 в качестве показателя. Он также имеет дискретное распределение и непрерывное приближение дискретного распределения. Все эти распределения также могут соответствовать существующим данным.

(Отказ от ответственности: я написал эту библиотеку).

Смежные вопросы