2009-07-12 5 views
1

私のprevious投稿私は正規分布に従って数字を生成する方法を尋ねていました。C++:TR1とGSL vs統計分布のブースト?

私が生成するためにも、他のディストリビューションを持っていると私は見たので3つのライブラリがそれらを提供するかもしれない(GSL、TechnicalReport1(DOCリンク?)、Boost)、私はあなたが選ぶだろうどちら思っていました。

私のアプリケーションのリファレンスプラットフォームはGNU/Linuxシステムであり、パフォーマンスは問題です。

答えて

1

ブーストはクロスプラットフォームなのでいいです。正直なところ、暗号化されないように番号が必要なだけの場合、メルセントゥイスターはこれらのライブラリから非常に高速になります。ボトルネックの場合は、最も速いものを見つけるためにいくつかのテストを行います。

4

Take BoostこれはC++用に広く普及しています。

GSLは非常に優れたライブラリであり、配布にははるかに遅れていますが、非GPLアプリケーションを開発して配布する場合はできません。

2

メルセンヌツイスターは、均一に分布した数を与える。それらから正規分布の番号を生成するには、2つの一般的なアプローチがあります:それは遅い呼び出すため私の経験で

  1. Box-Muller transform

  2. Ziggurat method

は、ジグラットは、Javaで速く2倍されますlog-expはBox-Mullerよりもはるかに少ない頻度で機能します。私はそれがC++でどのようになっているのか分かりません。

関連する問題