📅  最后修改于: 2023-12-03 15:29:55.518000             🧑  作者: Mango
在C++中,我们可以使用标准库<random>
和<ctime>
来生成随机数。具体方法如下:
<random>
标准库该标准库提供了uniform_int_distribution
和uniform_real_distribution
两种分布方式,分别用来生成整数和浮点数。
#include <random>
using namespace std;
int main(){
// 随机数生成器
mt19937 gen(time(NULL));
// 整型分布
uniform_int_distribution<int> dis(1, 10);
int rand_num = dis(gen);
cout << "随机整数:" << rand_num << endl;
// 浮点型分布
uniform_real_distribution<double> dis2(1.0, 2.0);
double rand_num2 = dis2(gen);
cout << "随机浮点数:" << rand_num2 << endl;
return 0;
}
<ctime>
标准库该库提供了rand()
函数来生成随机数,需要注意的是需要先调用srand()
函数来初始化随机数种子。
#include <ctime>
#include <cstdlib>
using namespace std;
int main(){
// 初始化随机数种子
srand((unsigned)time(NULL));
// 生成随机整数
int rand_num = rand() % 10 + 1;
cout << "随机整数:" << rand_num << endl;
// 生成随机浮点数
double rand_num2 = (double)rand()/RAND_MAX * 2.0 + 1.0;
cout << "随机浮点数:" << rand_num2 << endl;
return 0;
}
以上两种方式均可用于生成随机数,其中<random>
标准库使用更加灵活,可以通过不同的分布和不同的随机数生成器来生成各种不同的数据类型。而<ctime>
库则使用更加简单,适合一些简单应用场景。
可以看到,C++生成随机数的方法非常简单,只需要几行代码即可实现。