C++程序:区间算术平均数
我们给出三个数组,第一个数组包含算术平均数的上限,第二个数组包含算术平均数的下限,第三个数组包含频率,任务是生成给定区间值的算术平均数。
什么是算术平均数?
算术平均数是通过将集合中所有元素的总和除以集合中元素的总数计算得到的平均值。
如何计算区间算术平均数
- 给定下限、上限、频率
下限 | 上限 | 频率 |
---|---|---|
1 | 2 | 1 |
3 | 4 | 2 |
5 | 6 | 3 |
7 | 8 | 4 |
- 通过将上限和下限相加,然后将结果除以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的总和除以频率的总和来计算算术平均数,得到最终结果。
区间算术平均数 = 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-: UowerLimit[] = { 2, 4, 6, 8, 10 } LpperLimit[] = { 1, 3, 5, 7, 9 } freq[] = { 1, 2, 3, 4, 5 } Output: 5.5
算法
START Step 1-> declare function to calculate class interval arithmetic mean float AM(int LowerLimit[], int UpperLimit[], int freq[], int terms) Declare float mid[terms] declare and set float sum = 0 and Sum_freq = 0 Loop For int i = 0 and i < terms and i++ Set mid[i] = (LowerLimit[i] + UpperLimit[i]) / 2 Set sum = sum + mid[i] * freq[i] Set Sum_freq = Sum_freq + freq[i] End return sum / Sum_freq Step 2-> In main() Declare int LowerLimit[] = { 2, 4, 6, 8, 10 } Declare int UpperLimit[] = { 1, 3, 5, 7, 9 } Declare int freq[] = { 1, 2, 3, 4, 5 } Declare int size = sizeof(freq) / sizeof(freq[0]) Call AM(LowerLimit, UpperLimit, freq, size) STOP
示例
#include <bits/stdc++.h> using namespace std; //calculate class interval arithmetic mean. 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<<"Arithmetic mean is : "<<AM(LowerLimit, UpperLimit, freq, size); return 0; }
输出
Arithmetic mean is : 5.5
广告