如何生成n个1~1000之间的随机数?
时间: 2024-10-03 17:02:21 浏览: 34
在C++中,你可以使用 `<random>` 和 `<algorithm>` 库来生成一系列1到1000之间的随机整数。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <random>
// 定义随机数生成器的范围
std::mt19937 generator(std::random_device{}()); // 使用Mersenne Twister算法
std::uniform_int_distribution<int> distribution(1, 1000); // 生成1到1000之间的整数
void generateRandomNumbers(int n) {
std::vector<int> random_numbers(n);
for (int i = 0; i < n; ++i) {
random_numbers[i] = distribution(generator);
}
std::copy(random_numbers.begin(), random_numbers.end(), std::ostream_iterator<int>(std::cout, " "));
}
int main() {
int num_of_randoms;
std::cout << "Enter the number of random numbers to generate: ";
std::cin >> num_of_randoms;
generateRandomNumbers(num_of_randoms);
return 0;
}
```
这段代码首先创建了一个 `generator`,它是基于Mersenne Twister算法的随机数引擎,然后定义了 `distribution`,使其在1到1000之间均匀分布。`generateRandomNumbers` 函数接受一个参数 `n`,表示要生成的随机数的数量,然后用循环生成并存储这些随机数。
在 `main` 函数中,用户被提示输入要生成的随机数的数量,然后调用 `generateRandomNumbers` 函数进行生成。
运行这个程序时,请确保已经包含了所需的库,并根据需要修改生成数量。如果你对其他方面有疑问,例如算法选择或库使用,请告诉我。
阅读全文