ด้วยอาร์เรย์ของจำนวนธรรมชาติและภารกิจคือการคำนวณค่าเฉลี่ยฮาร์มอนิกของตัวเลขที่กำหนดและพิมพ์ออกมา
ค่าเฉลี่ยฮาร์โมนิกคืออะไร
ค่าเฉลี่ยฮาร์มอนิกหมายถึงส่วนกลับของค่าเฉลี่ยเลขคณิตโดยส่วนกลับ
$$Harmonic\:Mean=\frac{n}{\frac{1}{a}+\frac{1}{b}+\frac{1}{c}+...}$$
โดยที่ n คือจำนวนองค์ประกอบทั้งหมดที่กำหนด และ a, b, c,.. เป็นองค์ประกอบจริงในอาร์เรย์
ขั้นตอนในการคำนวณหาค่าเฉลี่ยฮาร์โมนิกคือ −
-
ทำส่วนกลับขององค์ประกอบ
-
เพิ่มองค์ประกอบที่ตอบสนองทั้งหมดเข้าด้วยกัน
-
ตอนนี้แบ่งจำนวนองค์ประกอบทั้งหมดในอาร์เรย์ด้วยผลรวมขององค์ประกอบที่ตอบสนอง
ป้อนข้อมูล
arr[] = {2.0, 3.4, 5.3, 2.1}
ผลผลิต
Harmonic mean is: 2.74163
ป้อนข้อมูล
arr[] = {13.5, 14.5, 14.8, 15.2, 16.1}
ผลผลิต
Harmonic mean is : 14.7707
อัลกอริทึม
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
ตัวอย่าง
#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; }
ผลลัพธ์
หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Harmonic mean is : 2.74163