std::random
Boost.randomのメルセンヌツイスター(あんまし偏らない乱数)がstd::tr1に入っていたので使ってみた。
#include <functional> #include <iostream> #include <algorithm> #include <random> #include <time.h> using namespace std; int main(){ // 現在時刻をシードにする mt19937 engine(static_cast<unsigned long>(time(0))); // 乱数範囲を設定 uniform_int<int> dist(-100,100); // ラムダ式使って、上記ふたつを一つのfunctionalオブジェクトにブチ込む function<int ()> mt_rand = [&]{ return dist(engine);}; // -100〜100までのあんまり偏らない乱数を吐き出す cout << mt_rand() << endl; cout << mt_rand() << endl; cout << mt_rand() << endl; }
これで取り出せる。実にすばらしい。