반응형
#평균 #표준편차 #분산 #계산하기
표준편차(standard deviation)
자료가 평균으로 부터 얼마나 떨어져 있는 지를 나타내는 값이다.
표준편차는 분산의 제곱근이다.
![]() |
분산(variance)
변수의 흩어진 정도를 나타내는 값이다.
[위 공식 그림 참고] https://terms.naver.com/entry.naver?docId=727543&cid=42140&categoryId=42140
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define N 5 // 데이터 개수
double average(int arr[], int size)
{
int i;
double sum = 0;
for (i = 0; i < size; i++)
sum += arr[i];
return sum / size;
}
// 분산
double variance(int arr[], int size)
{
double v, avg = 0, sum = 0;
int i;
avg = average(arr, size); // 평균 구하기
for (i = 0; i < size; i++)
sum += pow((arr[i] - avg), 2);
v = sum / (size - 1); // 분산
return v;
}
// 표준편차
double standard_deviation(int arr[], int size)
{
double v = variance(arr, size);
return sqrt(v);
}
void input_data(int arr[], int size)
{
int i;
srand((unsigned)time(NULL));
for (i = 0; i < size; i++)
arr[i] = rand() % 51 + 50; // 50~100사이의 수
}
void print_array(int arr[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main()
{
int arr[N];
input_data(arr, N);
print_array(arr, N);
printf("\n평균 : %f\n", average(arr, N));
printf("\n분산 : %f\n", variance(arr, N));
printf("표준편차 : %f\n", standard_deviation(arr, N));
}
(Output)
엑셀에서 계산한 결과와 비교해 봤는데, 정확한 결과인걸 확인했습니다.
![](https://t1.daumcdn.net/keditor/emoticon/friends2/large/013.png)
반응형
'C_C++' 카테고리의 다른 글
(C언어) 2차원배열 가로합 세로합 전체합 구하기 (0) | 2022.10.25 |
---|---|
(C언어) 구구단 가로로 세로로 출력하기 (0) | 2022.10.24 |
(C언어) 학점 구하기 (0) | 2022.10.23 |
(C언어) 10진수를 16진수로 변환: 배열 이용 (0) | 2022.10.23 |
(C언어) 10진수를 2진수로 변환: 배열 이용 (0) | 2022.10.23 |