用C++生成1-39的随机整数,用39次生成这39个数,并且一个一个输出,不能有重复和遗漏。
时间: 2024-12-24 15:17:43 浏览: 14
在C++中,你可以使用标准库中的`<random>`和`<algorithm>`来实现这个功能。这里是一个简单的示例代码片段:
```cpp
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
int main() {
std::vector<int> numbers;
std::random_device rd; // 用于获取随机数种子
std::mt19937 g(rd()); // Mersenne Twister随机数生成器
std::uniform_int_distribution<> dis(1, 39); // 分布范围为1到39
for (int i = 0; i < 39; ++i) {
int random_num = dis(g);
while (std::find(numbers.begin(), numbers.end(), random_num) != numbers.end()) { // 检查数字是否已存在
random_num = dis(g);
}
numbers.push_back(random_num);
std::cout << random_num << " "; // 输出当前随机数
}
std::cout << "\n";
return 0;
}
```
这段代码首先创建一个空向量`numbers`,然后通过`dis(g)`生成1到39之间的随机数。如果生成的随机数已经存在于向量中,它会继续生成新的随机数直到找到一个未被选择过的。一旦找到一个新数,就将其添加到向量并输出。最后输出所有39个独特的随机数。
注意:因为是动态生成的随机数序列,所以可能会由于随机性导致输出顺序与预期有所不同。
阅读全文