J'essaie de générer un réseau p2p selon la distribution de la loi de puissance. Comment générer une distribution de loi de puissance en Java? A-t-il une bibliothèque?Java: distribution de la loi de puissance
merci :)
J'essaie de générer un réseau p2p selon la distribution de la loi de puissance. Comment générer une distribution de loi de puissance en Java? A-t-il une bibliothèque?Java: distribution de la loi de puissance
merci :)
La bibliothèque Apache Commons Math a une implementation for Zipf's distribution, qui est une loi de puissance.
Peut-être que la bibliothèque Colt java peut vous aider. Il génère des nombres aléatoires selon plusieurs distributions.
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
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.
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).
+1 pour le lien menant à l'autre réponse. – Stephan202