使用c++生成n个随机数(取值范围为[100, 400]),并将随机数存于一个vector中,并求这些随机数的均值与方差。
时间: 2024-09-29 10:03:58 浏览: 36
1_1. 产生100个随机数_求其最小值和最大值以及平均值_
5星 · 资源好评率100%
在C++中,我们可以使用 `<random>` 和 `<vector>` 库来生成指定范围内的随机数,并计算它们的均值和方差。以下是简单的步骤:
```cpp
#include <iostream>
#include <vector>
#include <random>
double mean(const std::vector<int>& numbers) {
double sum = 0;
for (int num : numbers) {
sum += num;
}
return sum / numbers.size();
}
double variance(const std::vector<int>& numbers) {
double mean_val = mean(numbers);
double sum_of_squares = 0;
for (int num : numbers) {
sum_of_squares += pow(num - mean_val, 2);
}
return sum_of_squares / numbers.size();
}
int main() {
const int n = 10; // 需要生成的随机数个数
std::default_random_engine generator(std::chrono::system_clock::now().time_since_epoch().count());
std::uniform_int_distribution<int> distribution(100, 400);
std::vector<int> random_numbers(n);
for (int i = 0; i < n; ++i) {
random_numbers[i] = distribution(generator);
}
double average = mean(random_numbers);
double variance_value = variance(random_numbers);
std::cout << "Mean: " << average << "\n";
std::cout << "Variance: " << variance_value << "\n";
return 0;
}
```
在这个示例中,我们首先定义了一个 `mean` 函数计算平均值,`variance` 函数用于计算方差。然后,在 `main` 函数中,创建了一个 `std::default_random_engine` 来生成伪随机数,并使用 `std::uniform_int_distribution` 确保数字在指定范围内。最后,我们将生成的随机数存储到 `random_numbers` 中并计算均值和方差。
阅读全文