用 C++ 計算平均絕對差的程式
給定一個自然數陣列,任務是計算平均絕對差,為此,我們需要了解平均值、方差和標準偏差。
計算平均絕對差需要遵循以下步驟
計算平均值
計算絕對差
將所有計算所得的絕對差相加
套用公式
輸入
arr[] = { 34,21,56,76,45,11}
輸出
mean absolute deviation is : 18.5
輸入
arr[] = {10, 15, 15, 17, 18, 21}
輸出
mean absolute mean absolute deviation is : 2.66
給定程式中使用的如下
輸入陣列元素
計算陣列平均值
使用公式計算絕對差:Sum = Sum + abs(arr[i] - Mean(arr, n))
計算平均絕對差,方法是將總絕對差除以陣列中元素的總數
(abs(arr[0] – mean) + abs(arr[1] – mean) + . . + abs(arr[n-1] – mean) / n
演算法
Start Step 1→ declare function to calculate mean float mean(float arr[], int size) declare float sum = 0 Loop For int i = 0 and i < size and i++ Set sum = sum + arr[i] End return sum / size Step 2→ Declare function to calculate deviation float deviation(float arr[], int size) declare float sum = 0 Loop For int i = 0 and i < size and i++ Set sum = sum + abs(arr[i] - mean(arr, size)) End return sum / size Step 3→ In main() Declare float arr[] = { 34,21,56,76,45,11} Declare int size = sizeof(arr) / sizeof(arr[0]) Call deviation(arr, size) Stop
示例
#include <bits/stdc++.h> using namespace std; //calculate mean using mean function float mean(float arr[], int size){ float sum = 0; for (int i = 0; i < size; i++) sum = sum + arr[i]; return sum / size; } //calculate mean deviation float deviation(float arr[], int size){ float sum = 0; for (int i = 0; i < size; i++) sum = sum + abs(arr[i] - mean(arr, size)); return sum / size; } int main(){ float arr[] = { 34,21,56,76,45,11}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"mean absolute deviation is : "<<deviation(arr, size); return 0; }
輸出
如果執行以上程式碼,它將生成以下輸出 −
mean absolute deviation is : 18.5
廣告