在做算法模拟或者功能仿真时通常需要一些模拟数据,下面记录一个使用c++在某个区间生成随机数的小demo,以便不时之需:
假设在区间[12,32]内取生成随机数:
auto f = [] {
std::random_device rd; // 用于获取真随机数种子
std::mt19937 gen(rd()); // 使用Mersenne Twister算法作为生成器,可以在大多数平台上提供高质量的随机数
double lower_bound = 12.0;
double upper_bound = 32.0;
std::uniform_real_distribution<double> distribution(lower_bound, upper_bound);
// 生成随机数
return distribution(gen);
};