C++程序:已知数组的中位数和众数,求平均数
平均数、中位数和众数是描述数据集中心趋势和分布的关键统计量。这些数值有助于理解给定数据的中心趋势和分布。在本文中,我们将学习如何在已知给定数组的中位数和众数的情况下,使用C++求平均数。
问题陈述
给定一个数组,我们需要在C++中已知中位数和众数的情况下求平均数。
示例
-
输入
[5, 15, 25, 35, 35, 40, 10]
中位数 = 25
众数 = 35
平均数 = 20
暴力方法
在这种方法中,我们通过遍历数组来计算平均数。平均数是通过求数组中所有元素的和并除以元素个数来计算的。
步骤
- 遍历数组并计算所有元素的和。
- 将总和除以元素个数以求数组的平均数。
- 返回数组的平均数。
实现代码
#include输出using namespace std; // Function to calculate mean double calculateMean(int arr[], int n) { double sum = 0; for (int i = 0; i < n; i++) { sum += arr[i]; } return sum / n; } int main() { int arr[] = {5, 15, 25, 35, 35, 40, 10}; int n = 7; double mean = calculateMean(arr, n); cout << "The Mean of the given dataset is: " << mean << endl; return 0; }
The Mean of the given dataset is: 23.5714时间复杂度:O(n),因为我们正在遍历数组。
空间复杂度:O(1),常数空间。
优化方法
在优化方法中,我们直接使用公式求平均数,无需遍历数组。使用中位数和众数求平均数的公式是:
平均数 = (众数 + 2 × 中位数) / 3
如果已知中位数和众数,我们可以简单地使用此公式求平均数。
步骤
- 定义一个使用公式求平均数的函数。
- 此函数将以中位数和众数为参数,并计算平均数。
实现代码
#include输出using namespace std; // Function to calculate mean using mode and median double calculateMean(double median, double mode) { return (mode + 2 * median) / 3; } int main() { double median, mode; cout << "Enter the median of the array: "; cin >> median; cout << "Enter the mode of the array: "; cin >> mode; double mean = calculateMean(median, mode); cout << "The Mean of the array is: " << mean << endl; return 0; }
Enter the median of the array: 25 Enter the mode of the array: 35 The Mean of the array is: 20时间复杂度:O(1),常数时间。
空间复杂度:O(1),常数空间。
广告