用 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

更新於:13-Aug-2020

666 次瀏覽

職業生涯起步

完成課程獲得認證

開始吧
廣告