Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình tính Mean Absolute Deviation (Độ lệch tuyệt đối trung bình) trong C++


Cho mảng số. Nhiệm vụ: tính Mean Absolute Deviation (MAD).

Các bước

  1. Tính Mean (trung bình).
  2. Tính độ lệch tuyệt đối của mỗi phần tử: |xᵢ - mean|.
  3. Tính trung bình của các độ lệch đó.

Công thức:

$$MAD = \frac{1}{n} \sum_{i=1}^n |x_i - \bar{x}|$$

Ví dụ 1

Input – arr[] = {34, 21, 56, 76, 45, 11}

Output – MAD = 18.5

Ví dụ 2

Input – arr[] = {10, 15, 15, 17, 18, 21}

Output – MAD = 2.666...

Ví dụ code

#include <bits/stdc++.h>
using namespace std;

double mean(const vector<double>& arr) {
    double sum = 0;
    for (double x : arr) sum += x;
    return sum / arr.size();
}

double meanAbsoluteDeviation(const vector<double>& arr) {
    double m = mean(arr);
    double sum = 0;
    for (double x : arr) sum += abs(x - m);
    return sum / arr.size();
}

int main() {
    vector<double> arr = {34, 21, 56, 76, 45, 11};
    cout << "Mean Absolute Deviation: " << meanAbsoluteDeviation(arr) << endl;
    return 0;
}

Kết quả

Mean Absolute Deviation: 18.5

Ý nghĩa: MAD đo lường độ phân tán dữ liệu quanh trung bình. Khác với Standard Deviation (dùng bình phương), MAD dùng giá trị tuyệt đối, ít nhạy cảm với outlier hơn.