2010-07-15 5 views

Répondre

3

Peut-être que la bibliothèque Colt java peut vous aider. Il génère des nombres aléatoires selon plusieurs distributions.

4

Si vous ne pouvez pas/ne voulez pas utiliser une bibliothèque:

Dans ce cas, la meilleure façon de faire est de travailler le CDF (vérifier contre Wikipedia), qui est la fonction F : x -> P (X < x). Ensuite, vous dessinez des nombres aléatoires uniformes y sur [0,1] avec votre générateur préféré, et vous résolvez y = F (x). La séquence de tels x est distribuée de manière identique et suit une distribution de loi de puissance.

Edit: the answer is there

+0

+1 pour le lien menant à l'autre réponse. – Stephan202

1

Apache Commons Math lib était assez lent sur mon système (peut-être je raté quelque chose ...). Cette classe autonome PowerLaw.java a fonctionné pour moi.

1

Cette bibliothèque: https://github.com/pbloem/powerlaws contient un générateur de loi de puissance, utilisée comme suit:

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

Ceci génère 1000 points de distribution en loi de puissance avec 3,14 comme valeur minimale et 2,5 comme exposant. Il a également une distribution discrète et une approximation continue d'une distribution discrète. Toutes ces distributions peuvent également être adaptées aux données existantes.

(Avis de non-responsabilité: j'ai écrit cette bibliothèque).

Questions connexes