📅  最后修改于: 2023-12-03 15:42:24.573000             🧑  作者: Mango
在编程中,随机数生成器是非常常见的一个工具,它可以用来生成在一定范围内的随机数。在 C++ 中,我们可以使用 <random>
库来实现随机数生成器。
包含 <random>
头文件
首先我们需要在程序中包含 <random>
头文件,使用标准命名空间:
#include <random>
using namespace std;
创建随机数引擎
随机数引擎是生成随机数的基础,我们需要先创建它。C++ 标准库提供了许多种随机数引擎,比如 mt19937
、minstd_rand
、knuth_b
等等,选择哪种取决于你的需求。
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
这里我们使用了 mt19937
引擎,种子为当前时间的纳秒数。
创建随机数分布
接下来我们需要创建随机数分布,也就是指定随机数的范围和分布规律。C++ 标准库提供了几种常用的分布类型:均匀分布、正态分布、泊松分布等等,在实际应用中可以按照自己的需求选择其中一个。
uniform_int_distribution<int> distr(1, 10);
这里我们使用了均匀分布 uniform_int_distribution
,指定了随机数的范围为 [1,10]
。
生成随机数
最后我们就可以使用随机数引擎对应的分布来生成随机数了。
int random_number = distr(rng);
这里我们使用了之前创建的随机数引擎 rng
和随机数分布 distr
。distr(rng)
的意思是用随机数引擎 rng
和 distr
分布生成一个随机数。
完整的随机数生成器实现代码如下:
#include <iostream>
#include <random>
#include <chrono>
using namespace std;
int main()
{
// 创建随机数引擎
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
// 创建随机数分布
uniform_int_distribution<int> distr(1, 10);
// 生成随机数
int random_number = distr(rng);
// 输出结果
cout << "Random Number: " << random_number << endl;
return 0;
}
以上就是随机数生成器的使用方法,希望能对你编写程序有所帮助。