Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình tính Harmonic Mean (Trung bình điều hòa) trong C++


Cho mảng số. Nhiệm vụ: tính Harmonic Mean.

Harmonic Mean là gì?

Trung bình điều hòa là nghịch đảo của trung bình cộng các nghịch đảo:

$$H = \frac{n}{\sum_{i=1}^n \frac{1}{x_i}}$$

Áp dụng cho các tỷ lệ, tốc độ, giá cả... Khi các giá trị > 0.

Ví dụ 1

Input – {2.0, 3.4, 5.3, 2.1}

Output – Harmonic mean: 2.74163

Ví dụ 2

Input – {13.5, 14.5, 14.8, 15.2, 16.1}

Output – Harmonic mean: 14.7707

Ví dụ code

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

double harmonicMean(const vector<double>& arr) {
    double sumReciprocal = 0;
    for (double x : arr) {
        if (x == 0) return 0; // Tránh chia cho 0
        sumReciprocal += 1.0 / x;
    }
    return arr.size() / sumReciprocal;
}

int main() {
    vector<double> arr = {2.0, 3.4, 5.3, 2.1};
    cout << "Harmonic Mean: " << harmonicMean(arr) << endl;
    return 0;
}

Kết quả

Harmonic Mean: 2.74163

Mối quan hệ: Harmonic Mean ≤ Geometric Mean ≤ Arithmetic Mean (bất đẳng thức HM-GM-AM). Bằng nhau khi tất cả giá trị bằng nhau.

Ứng dụng: Tính tốc độ trung bình khi đi cùng quãng đường tốc độ khác nhau, điện trở song song, tỷ lệ P/E trung bình...