随机数引擎的输出是不能直接使用的,一般生成的随机数的值范围与我们需要的不符,而正确转换随机数的范围是极其困难的。
头文件#include<random>
生成均匀分布的整数
default_random_engine e;//生成随机的无符号数
uniform_int_distribution<unsigned> u(0, 9);//生成0-9之间的均匀分布的随机数
for (size_t i = 0; i < 10; ++i) {
//每次调用返回在指定范围内并服从均匀分布的值
cout << u(e) << " ";
}
生成均匀分布的浮点数
double GenerateDouble(int min, int max) {
static default_random_engine e; //必须是static,否则每个数都一样
static uniform_real_distribution<double> u(min, max);
return u(e);
}