Cho với một mảng số tự nhiên và nhiệm vụ là tính giá trị trung bình hài hòa của các số đã cho và in ra.
Nghĩa là gì?
Trung bình hài có nghĩa là nghịch đảo của trung bình số học với nghịch đảo của chúng.
$$ Harmonic \:Mean =\ frac {n} {\ frac {1} {a} + \ frac {1} {b} + \ frac {1} {c} + ...} $$
Trong đó, n là tổng số phần tử đã cho và a, b, c, .. là các phần tử thực tế trong một mảng.
Các bước để tính giá trị trung bình hài là -
-
Thực hiện tương hỗ của các phần tử
-
Thêm tất cả các yếu tố tương hỗ với nhau
-
Bây giờ chia tổng số phần tử trong một mảng cho tổng các phần tử tương hỗ
Đầu vào
arr[] = {2.0, 3.4, 5.3, 2.1}
Đầu ra
Harmonic mean is: 2.74163
Đầu vào
arr[] = {13.5, 14.5, 14.8, 15.2, 16.1}
Đầu ra
Harmonic mean is : 14.7707
Thuật toán
Start Step 1→ declare function to calculate harmonic mean of numbers float harmonic_mean(float arr[], int size) Declare float sum = 0 Loop For int i = 0 and i < size and i++ Set sum = sum + (float)1 / arr[i] End return (float)size/sum Step 2→ In main() Declare float arr[] = {2.0, 3.4, 5.3, 2.1} Declare int size = sizeof(arr) / sizeof(arr[0]) Call harmonic_mean(arr, size) Stop
Ví dụ
#include <bits/stdc++.h> using namespace std; //calculate harmonic mean float harmonic_mean(float arr[], int size){ float sum = 0; for (int i = 0; i < size; i++) sum = sum + (float)1 / arr[i]; return (float)size/sum; } int main(){ float arr[] = {2.0, 3.4, 5.3, 2.1}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Harmonic mean is : "<<harmonic_mean(arr, size); return 0; }
Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Harmonic mean is: 2.74163