随机生成1-39的整数,且不能重复,不能遗漏。C++
时间: 2024-12-24 19:18:41 浏览: 16
在C++中,你可以通过以下几个步骤随机生成1到39之间不重复且不遗漏的整数序列:
首先,你需要包含必要的头文件,并定义一个存储结果的容器,如`std::vector<int>`。
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
// 容器用于存储随机数
std::vector<int> random_numbers;
const int min = 1;
const int max = 39;
int main() {
// 确保范围内的所有数都被选择
std::generate(std::begin(random_numbers), std::end(random_numbers),
[](){ return min + static_cast<int>(std::rand() % (max - min + 1)); });
// 使用STL算法shuffle打乱顺序,避免重复
std::srand(std::time(0)); // 设置随机种子以保证每次运行有不同结果
std::random_shuffle(std::begin(random_numbers), std::end(random_numbers));
// 输出结果
for (int number : random_numbers) {
std::cout << number << " ";
}
return 0;
}
```
这个程序会先生成1到39的全量数组,然后使用`std::random_shuffle`函数随机打乱数组元素的顺序,确保了每个数字只会被选一次且不会遗漏。
阅读全文