/* * random.hpp * * Created on: Sep 25, 2010 * Author: Michael J. Fischer * for use in Yale course CPSC 427a, Fall 2010 */ #pragma once #include "tools.hpp" // Discrete range random number generator class Random { private: int range_; int top_; public: // Output range is [0, range-1] Random(int range, unsigned int seed) { range_ = range; top_ = (((((RAND_MAX - range) + 1) / range) * range - 1) + range); srand(seed); } // Generate and return next random element of [0, range_-1] int gen() const { int r; do { r = rand(); } while (r > top_); return (r % range_); } };