boost::math のガンマ分布を使用しようとしていますが、boost::variate_generator では使用できないようです。誰かがそれを確認できますか?もしくは使い道はありますか。
おそらく使用できる文書化されていないboost::gamma_distributionがあることを発見しましたが、ベータではなく分布からアルファパラメータのみを選択できます。
ありがとう!
boost::math のガンマ分布を使用しようとしていますが、boost::variate_generator では使用できないようです。誰かがそれを確認できますか?もしくは使い道はありますか。
おそらく使用できる文書化されていないboost::gamma_distributionがあることを発見しましたが、ベータではなく分布からアルファパラメータのみを選択できます。
ありがとう!
このリンクで述べたように、rng の出力に目的のスケールを掛けるだけで、Boost (または TR1) の 1 パラメータ ガンマ分布を拡張できます。
variate_generator
以下は、平均と分散によってパラメーター化されたガンマ分布から数値を描画するために使用するサンプル コードです。
#include <boost/random.hpp>
#include <boost/random/gamma_distribution.hpp>
double rgamma( double mean, double variance, boost::mt19937& rng ) {
const double shape = ( mean*mean )/variance;
double scale = variance/mean;
boost::gamma_distribution<> gd( shape );
boost::variate_generator<boost::mt19937&,boost::gamma_distribution<> > var_gamma( rng, gd );
return scale*var_gamma();
}