ด้วยอาร์เรย์ของจำนวนธรรมชาติและภารกิจคือการคำนวณค่าเฉลี่ยฮาร์มอนิกของตัวเลขที่กำหนดและพิมพ์ออกมา
ค่าเฉลี่ยฮาร์โมนิกคืออะไร
ค่าเฉลี่ยฮาร์มอนิกหมายถึงส่วนกลับของค่าเฉลี่ยเลขคณิตโดยส่วนกลับ
$$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