べき乗則分布に従って p2p ネットワークを生成しようとしています。Javaでべき乗則分布を生成する方法は? ライブラリはありますか?
ありがとう :)
ライブラリを使用できない/使用したくない場合:
この場合、最も簡単な方法は、関数 F : x -> P(X < x) である CDF ( Wikipediaで確認してください) を計算することです。次に、お気に入りの発生器で [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 ポイントを生成します。また、離散分布と離散分布の連続近似もあります。これらすべての分布は、既存のデータにも当てはめることができます。
(免責事項: このライブラリは私が作成しました)。
Apache Commons Math lib は、私のシステムではかなり遅かったです (何か見逃したのかもしれません...)。このスタンドアロン クラスPowerLaw.javaは私にとってはうまくいきました。