📅  最后修改于: 2023-12-03 15:29:49.053000             🧑  作者: Mango
在c++中,生成 1 到 10 之间的随机数有多种方法。下面我们依次介绍这些方法。
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int randomNumber = rand() % 10 + 1; // 生成 1 到 10 之间的随机数
cout << "随机数为:" << randomNumber << endl;
return 0;
}
解释:
下面是更新后的代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL)); // 指定seed为当前时间,更新rand()函数的种子
int randomNumber = rand() % 10 + 1; // 生成 1 到 10 之间的随机数
cout << "随机数为:" << randomNumber << endl;
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v(10);
for (int i = 1; i <= 10; ++i) v[i-1] = i;
random_shuffle(v.begin(), v.end()); // 打乱容器中的元素
int randomNumber = v.back(); // 取出最后一个元素
cout << "随机数为:" << randomNumber << endl;
return 0;
}
解释:
#include <iostream>
#include <random>
using namespace std;
int main()
{
random_device rd; // 定义一个随机数生成设备
uniform_int_distribution<int> dist(1, 10); // 定义一个从1到10的均匀分布
int randomNumber = dist(rd); // 生成一个随机数
cout << "随机数为:" << randomNumber << endl;
return 0;
}
解释:
以上三种方法都可以用来生成 1 到 10 之间的随机数,但它们各有优缺点。其中,方法三最为推荐,因为它是C++11标准定义的随机数发生器,具有良好的随机性和可移植性。