c++怎么从一堆数中任意选取几个数
时间: 2024-10-15 13:28:05 浏览: 73
在C++中,如果你想从一组数字中随机选取几个数,可以使用标准库中的<random>和<algorithm>头文件,以及`std::vector`容器。这里是一个基本的示例,说明如何从一个向量(动态数组)中随机选取指定数量的元素:
```cpp
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
// 定义生成随机数的范围和选取的数量
const int minNum = 0;
const int maxNum = 10; // 数组长度或其他限制
const int chooseNum = 3;
void selectRandomNumbers(const std::vector<int>& numbers) {
if (numbers.size() < chooseNum) {
std::cout << "Number of elements is less than the chosen number.\n";
return;
}
std::random_device rd; // 使用随机设备获取种子
std::mt19937 g(rd()); // Mersenne Twister随机数生成器
std::uniform_int_distribution<> dis(minNum, numbers.size() - 1); // 随机数分布
std::vector<int> selected(chooseNum);
for (int i = 0; i < chooseNum; ++i) {
selected[i] = numbers[dis(g)]; // 选择并添加到新向量
}
std::cout << "Selected numbers: ";
for (int num : selected) {
std::cout << num << " ";
}
std::cout << "\n";
}
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
selectRandomNumbers(numbers);
return 0;
}
```
在这个例子中,我们首先确认数组大小是否足够选择的数,然后创建一个Mersenne Twister随机数生成器,并设置一个均匀分布。接着,我们循环指定次数,每次从原数组中随机选择一个位置的元素放入结果向量。
阅读全文
相关推荐


















