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),常数空间。

更新于:2024年11月13日

22 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告