Пример #1
0
int GRASP::pickARandomNumberBetween(int begin, int end){
  typedef boost::mt19937 RNGType;
  RNGType rng;
  rng.seed(std::random_device()());
  boost::uniform_int<> begin_to_end( begin, end );
  boost::variate_generator< RNGType, boost::uniform_int<> >
                dice(rng, begin_to_end);
  return dice();
}
Пример #2
0
inline bool random_rng_k(const RNGType &, const std::string &filename)
{
    using result_type = typename RNGType::result_type;
    using key_type = typename RNGType::key_type;

    std::ifstream kat(filename);
    mckl::Vector<result_type> k;
    result_type x;
    while (kat >> x)
        k.push_back(x);
    kat.close();

    RNGType rng;
    mckl::Vector<result_type> r(k.size());
    mckl::rand(rng, k.size(), r.data());

    key_type kk;
    for (std::size_t i = 0; i != kk.size(); ++i)
        kk[i] = static_cast<typename key_type::value_type>(rng());
    rng.seed(kk);
    key_type rk = rng.key();

    return k.size() != 0 && k == r && kk == rk;
}
Пример #3
0
void RNG :: Randomise( int n ) {
	mNeedRandomise = false;
	mLastSeed = n;
	theGen.seed( n );
	theGen();
}