2006-03-14

boost::randomの使い方

#include <boost/random.hpp>
boost::mt19937 rng;

const double angle = boost::uniform_real<double>(0, 2.0*M_PI)(rng); //[rad]
const double speed = boost::uniform_real<double>(0, 4.0)(rng); //[pixel/frame]
const int lifetime = boost::uniform_int<int>(60, 120)(rng); //[frame]
        

rng()で取り出した値をそのまま自分で加工してもOK。

テンプレート引数はuniform_realだとdouble、uniform_intだとintがデフォルトなので省略可能。省略すると初見の人には分かりづらいけど。

rng内の状態を取り出して保存するのがちょっと難しい。