まあ、こんなページもあるみたいですが・・・。標準のものよりは随分まともで、妥協できる感じではないかと思います。
#ifndef RANDOM_GENERATOR_HPP
#define RANDOM_GENERATOR_HPP
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Copyright (c) 2009 OKI Miyuki (oki at hunes dot co dot jp)
//
#include <ctime>
#include <boost/random.hpp>
/// random generator class
/*!
@note Default random generator is too poor.
*/
struct random_generator {
private:
boost::mt19937 mt_gen_;
public:
random_generator() :
mt_gen_(static_cast<unsigned long>(std::time(0)))
{}
int operator () (int n) {
// Using mod is not uniform. but behavior is less.
return (mt_gen_() % n);
}
};
#endif // RANDOM_GENERATOR_HPP
0 件のコメント:
コメントを投稿