Cho ba mảng: mảng đầu chứa giới hạn trên cho trung bình cộng, mảng thứ hai chứa giới hạn dưới, mảng thứ ba chứa tần số. Nhiệm vụ là tạo trung bình cộng của các khoảng lớp cho trước.
Trung bình cộng là gì?
Trung bình cộng là giá trị trung bình tính bằng cách chia tổng tất cả phần tử trong tập cho tổng số phần tử trong tập đó.
Cách tính Trung bình cộng khoảng lớp
- Cho Giới hạn dưới, Giới hạn trên, Tần số
| Giới hạn dưới | Giới hạn trên | Tần số |
|---|---|---|
| 1 | 2 | 1 |
| 3 | 4 | 2 |
| 5 | 6 | 3 |
| 7 | 8 | 4 |
- Tính trung điểm bằng cách cộng giới hạn trên và dưới chia 2. Sau đó nhân trung điểm với tần số tương ứng.
| Giới hạn dưới | Giới hạn trên | Tần số(f) | Trung điểm(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 |
- Tính trung bình cộng bằng cách chia tổng m*f cho tổng tần số.
Trung bình cộng khoảng lớp = tổng m*f / tổng f = (1.5+7.0+16.5+30.0)/(1+2+3+4) = 5.5
Ví dụ
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
Thuật toán
BẮT ĐẦU
Bước 1: khai báo hàm tính trung bình cộng khoảng lớp
float AM(int LowerLimit[], int UpperLimit[], int freq[], int terms)
Khai báo float mid[terms]
Khai báo và gán float sum = 0 và Sum_freq = 0
Vòng lặp For i = 0; i < terms; i++
mid[i] = (LowerLimit[i] + UpperLimit[i]) / 2
sum = sum + mid[i] * freq[i]
Sum_freq = Sum_freq + freq[i]
Kết thúc vòng lặp
return sum / Sum_freq
Bước 2: Trong main()
Khai báo int LowerLimit[] = {2, 4, 6, 8, 10}
Khai báo int UpperLimit[] = {1, 3, 5, 7, 9}
Khai báo int freq[] = {1, 2, 3, 4, 5}
Khai báo int size = sizeof(freq) / sizeof(freq[0])
Gọi AM(LowerLimit, UpperLimit, freq, size)
KẾT THÚC
Ví dụ
#include <bits/stdc++.h>
using namespace std;
// tính trung bình cộng khoảng lớp
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 UowerLimit[] = {2, 4, 6, 8, 10};
int LpperLimit[] = {1, 3, 5, 7, 9};
int freq[] = {1, 2, 3, 4, 5};
int size = sizeof(freq) / sizeof(freq[0]);
cout<<"Trung bình cộng là: "<<AM(LowerLimit, UpperLimit, freq, size);
return 0;
}
Kết quả
Trung bình cộng là: 5.5