C++新标准引用了随机数库和相关的函数对象.default_random_engine e定义了一个随机数引擎.如果我们不给定种子,那么e将会使用默认种子来生成随机数.这样对随机性是不好的.我们可以使用系统函数time来提供种子.分布类型对象可以帮助我们获得在指定范围内均匀分布的随机数序列. 例子1:编写一个函数,每次调用返回一个均匀分布的随机 unsigned int。 ``` unsigned int Rand_value() { static default_random_engine e(time(0)); static std::uniform_int_distribution<unsigned> ud; return ud(e); } 例子2:提供两个参数选择生成随机数的范围. unsigned int Rand_value(unsigned int min,unsigned int max) { if (max < min) { cout << "max must be greater than min!\n"; exit(-1); } static default_random_engine e(time(0)); static std::uniform_int_distribution<unsigned> ud(min,max); return ud(e); }