เราได้รับอาร์เรย์สามอาร์เรย์ โดยอาร์เรย์แรกมีขอบเขตบนสำหรับค่าเฉลี่ยเลขคณิต อาร์เรย์ที่สองมีขอบเขตล่างสำหรับค่าเฉลี่ยเลขคณิต และอาร์เรย์ที่สามมีความถี่ และภารกิจคือสร้างค่าเฉลี่ยเลขคณิตของช่วงชั้นที่กำหนด
ค่าเฉลี่ยเลขคณิตคืออะไร?
ค่าเฉลี่ยเลขคณิตคือค่าเฉลี่ยที่คำนวณโดยการหารผลรวมของทุกสมาชิกในชุดด้วยจำนวนสมาชิกทั้งหมดในชุดที่กำหนด
วิธีคำนวณ Class Interval Arithmetic Mean
- กำหนดขอบเขตล่าง, ขอบเขตบน, ความถี่
| ขอบเขตล่าง | ขอบเขตบน | ความถี่ |
|---|---|---|
| 1 | 2 | 1 |
| 3 | 4 | 2 |
| 5 | 6 | 3 |
| 7 | 8 | 4 |
- คำนวณจุดกึ่งกลาง (mid-point) โดยการบวกขอบเขตบนและขอบเขตล่าง แล้วหารผลลัพธ์สุดท้ายด้วย 2 เนื่องจากมีค่าสองค่า หลังจากนั้น คูณจุดกึ่งกลางของช่วงชั้นกับความถี่ที่สอดคล้อง
| ขอบเขตล่าง | ขอบเขตบน | ความถี่(f) | จุดกึ่งกลาง(m) | m*f |
|---|---|---|---|---|
| 1 | 2 | 1 | (1+2)/2=1.5 | 1.5*1=1.5 |
| 3 | 4 | 2 | (3+4)/2=3.5 | 3.5*2=7.0 |
| 5 | 6 | 3 | (5+6)/2=5.5 | 5.5*3=16.5 |
| 7 | 8 | 4 | (7+8)/2=7.5 | 7.5*4=30.0 |
- คำนวณค่าเฉลี่ยเลขคณิตโดยการหารผลรวม m*f ด้วยผลรวมของความถี่สำหรับผลลัพธ์สุดท้าย
Class Interval Arithmetic Mean = ผลรวม m*f / ผลรวม f = (1.5+7.0+16.5+30.0)/(1+2+3+4) = 5.5
ตัวอย่าง
Input-: LowerLimit[] = {1, 6, 11, 16, 21} UpperLimit[] = {5, 10, 15, 20, 25} freq[] = {10, 20, 30, 40, 50} Output: 16.3333 Input-: LowerLimit[] = { 2, 4, 6, 8, 10 } UpperLimit[] = { 1, 3, 5, 7, 9 } freq[] = { 1, 2, 3, 4, 5 } Output: 5.5อัลกอริทึม
เริ่มต้น ขั้นตอนที่ 1 -> ประกาศฟังก์ชันคำนวณค่าเฉลี่ยเลขคณิตช่วงชั้น float AM(int LowerLimit[], int UpperLimit[], int freq[], int terms) ประกาศ float mid[terms] ประกาศและตั้งค่า float sum = 0 และ Sum_freq = 0 ลูป For int i = 0 และ i < terms และ i++ ตั้งค่า mid[i] = (LowerLimit[i] + UpperLimit[i]) / 2 ตั้งค่า sum = sum + mid[i] * freq[i] ตั้งค่า Sum_freq = Sum_freq + freq[i] จบ คืนค่า sum / Sum_freq ขั้นตอนที่ 2 -> ใน main() ประกาศ int LowerLimit[] = { 2, 4, 6, 8, 10 } ประกาศ int UpperLimit[] = { 1, 3, 5, 7, 9 } ประกาศ int freq[] = { 1, 2, 3, 4, 5 } ประกาศ int size = sizeof(freq) / sizeof(freq[0]) เรียก AM(LowerLimit, UpperLimit, freq, size) จบตัวอย่าง
#include <bits/stdc++.h> using namespace std; // คำนวณค่าเฉลี่ยเลขคณิตช่วงชั้น float AM(int LowerLimit[], int UpperLimit[], int freq[], int terms) { float mid[terms]; float sum = 0, Sum_freq = 0; for (int i = 0; i < terms; i++) { mid[i] = (LowerLimit[i] + UpperLimit[i]) / 2; sum = sum + mid[i] * freq[i]; Sum_freq = Sum_freq + freq[i]; } return sum / Sum_freq; } int main() { int LowerLimit[] = { 2, 4, 6, 8, 10 }; int UpperLimit[] = { 1, 3, 5, 7, 9 }; int freq[] = { 1, 2, 3, 4, 5 }; int size = sizeof(freq) / sizeof(freq[0]); cout<<"Arithmetic mean is : "<<AM(LowerLimit, UpperLimit, freq, size); return 0; }ผลลัพธ์
Arithmetic mean is : 5.5