📅  最后修改于: 2023-12-03 15:14:02.109000             🧑  作者: Mango
在C++中,std::uniform_real_distribution是一个用于生成指定区间内均匀分布的随机数的工具类。这在很多游戏和模拟领域中都有广泛的应用。下面将介绍如何使用std::uniform_real_distribution工具类。
使用std::uniform_real_distribution需要先通过#include <random>
将此类的头文件加入项目中。其中,<random>
头文件包含了许多可用于生成随机数的工具类。同时,C++11或以上的标准才支持<random>
头文件。
在使用std::uniform_real_distribution之前,需要先创建该类的一个实例。示例代码如下:
#include <random>
// 创建一个名为a的std::uniform_real_distribution类实例对象,其随机数范围为1.0到10.0之间的均匀分布
std::uniform_real_distribution<double> a(1.0, 10.0);
上述代码中,<double>
表示生成的随机数的类型为双精度浮点型(double),参数1和参数2分别表示生成随机数的范围的下限和上限。
生成随机数的步骤包括两部分:首先使用std::random_device工具类生成随机数生成器,然后使用std::uniform_real_distribution工具类生成随机数。
#include <random>
// 生成随机数生成器
std::random_device rd;
std::mt19937 gen(rd());
// 创建一个名为a的std::uniform_real_distribution类实例对象,其随机数范围为1.0到10.0之间的均匀分布
std::uniform_real_distribution<double> a(1.0, 10.0);
// 生成随机数
double rand_num = a(gen);
在上述代码中,std::random_device
是用于生成高质量随机数的工具类,std::mt19937
是用于生成伪随机数序列的随机数生成器。
a(gen)
表示使用std::uniform_real_distribution
工具类生成一个随机数,gen
表示使用std::mt19937
生成的随机数序列。
#include <iostream>
#include <random>
int main()
{
// 生成随机数生成器
std::random_device rd;
std::mt19937 gen(rd());
// 创建一个名为a的std::uniform_real_distribution类实例对象,其随机数范围为1.0到10.0之间的均匀分布
std::uniform_real_distribution<double> a(1.0, 10.0);
// 生成随机数
double rand_num = a(gen);
std::cout << "生成的随机数是:" << rand_num << std::endl;
return 0;
}