C加加 生成一系列不重复的随机数
时间: 2023-09-02 09:11:54 浏览: 95
你可以使用C++的标准库中的`<random>`头文件来生成一系列不重复的随机数。具体实现可以使用如下代码:
```c++
#include <iostream>
#include <random>
#include <ctime>
#include <algorithm>
using namespace std;
int main()
{
// 设置随机种子
srand((unsigned)time(NULL));
// 生成随机数引擎
std::mt19937 rng;
rng.seed(std::random_device()());
// 生成随机数分布
std::uniform_int_distribution<int> dist(1, 100);
int n = 10;
int arr[n];
// 生成n个不重复的随机数
for (int i = 0; i < n; i++) {
int num = dist(rng);
while (std::count(arr, arr + n, num) != 0) {
num = dist(rng);
}
arr[i] = num;
}
// 输出结果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在上面的代码中,我们首先通过`srand()`函数设置随机种子,然后通过`std::mt19937`生成随机数引擎,最后使用`std::uniform_int_distribution`生成随机数分布。接下来,我们生成n个不重复的随机数,具体实现方式是在每次生成随机数之后,判断该随机数是否已经在数组中出现过,如果已经出现过,则继续生成,直到生成一个新的随机数为止。最后,我们将结果输出到屏幕上。
阅读全文