【IT168技术文档】
看到c++编程思想中模板一章,发现书中给出的随机数发生器类用一种很简单,易理解的方式,展示了无重复随机数的产生。而且,此类相当容易扩展,生成自己所需要的各类随机数,所以记录下来,以后可以方便复习。
下面是作者写的随机数发生器类:
template<size_t N=100> class Generator{ private: bitset<N> v; public: Generator() { srand((unsigned int)time(NULL)); } int operator()() { int val; if (v.count() == N) { v.reset(); } while (v[val = rand()%N]) { } v[val] = 1; return val; } };