« 新PC用ケース購入 | メイン | ハロマテラピー »

2004年10月16日

Boostを使ってみよう その5

前回に引き続きrandomを使ってみることにします。randomはその名の通り乱数を生成するものですが、Cの標準のrand関数と比べて質の良い乱数が生成できたり、乱数の分布を指定することなどが可能です。

指定した範囲のdouble型の乱数を生成するのに、こんな感じのクラスを作りました。

class Rand
{
public:
  Rand(boost::uint32_t seed, double min, double max);
  virtual ~Rand();
  double operator()();
private:
  boost::variate_generator<boost::mt19937, boost::uniform_real<> > m_rand;
};

説明するまでもないですが、コンストラクタで乱数種と乱数の最大、最小値を決めています。肝心の乱数はエンジンがメルセンヌツイスターで分布は一様実数分布です。メルセンヌツイスターが使えるというのはとてもありがたいですね。

投稿者 sai : 2004年10月16日 07:27

コメント

コメントしてください




保存しますか?