1

ブーストの正規分布を使用して、このコードで何が起こっているのか誰か教えてもらえますか?

boost::mt19937 rng; // A random number generator
boost::normal_distribution<> nd(3.0, 1.0); // mean 3, sigma 1
// Attach the distribution to the random number generator to get a function
// that returns normally distributed variables.
boost::variate_generator<boost::mt19937&,boost::normal_distribution<> > var_nor(rng, nd);
// Use it. But why is function signature different?
double x = var_nor();

2 つの関数シグネチャを持つ var_nor で何が起こっているのか混乱しています。ありがとうピート

4

1 に答える 1

5

var_nor関数ではなく、オブジェクトです。

最初の行はそれを作成します(コンストラクターに引数としてrngとdistributionを渡します)。
2行目はそのoperator()メンバーを呼び出します。

于 2012-05-31T12:36:29.443 に答える