자연수로 이루어진 배열이 주어졌을 때, 해당 배열의 평균 절대 편차(Mean Absolute Deviation)를 계산하는 것이 이 프로그램의 목표입니다. 평균 절대 편차를 정확히 이해하고 구하려면 평균(mean), 분산(variance), 표준편차(standard deviation)에 대한 기본적인 통계 개념이 먼저 필요합니다.
평균 절대 편차 계산 순서
평균 절대 편차를 구하기 위해서는 다음 단계를 순서대로 따라야 합니다.
배열의 평균을 계산합니다
각 요소의 절대 편차를 계산합니다
계산된 모든 편차를 더합니다
공식에 대입하여 최종 결과를 구합니다

입력
arr[] = { 34,21,56,76,45,11}
출력
mean absolute deviation is : 18.5
입력
arr[] = {10, 15, 15, 17, 18, 21}
출력
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
알고리즘
시작
1단계 → 평균을 계산하는 함수 선언
float mean(float arr[], int size)
float sum = 0 선언
int i = 0부터 i < size까지 반복(i++)
sum = sum + arr[i]
반복 종료
return sum / size 반환
2단계 → 편차를 계산하는 함수 선언
float deviation(float arr[], int size)
float sum = 0 선언
int i = 0부터 i < size까지 반복(i++)
sum = sum + abs(arr[i] - mean(arr, size))
반복 종료
return sum / size 반환
3단계 → main() 함수에서
float arr[] = { 34,21,56,76,45,11} 선언
int size = sizeof(arr) / sizeof(arr[0]) 선언
deviation(arr, size) 호출
종료
예제 코드
#include <bits/stdc++.h>
using namespace std;
//평균 함수를 사용하여 평균 계산
float mean(float arr[], int size){
float sum = 0;
for (int i = 0; i < size; i++)
sum = sum + arr[i];
return sum / size;
}
//평균 편차 계산
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