Monday, February 26, 2007
C언어] 표준 편차 구하기/계산 함수 소스; Standard Deviation Function
C에서 실수 배열의 표준편차를 구하려면 다음 예제의 함수를 사용하면 됩니다.
standardDeviation(실수_배열명, 배열_요소_개수, 옵션)
의 형식이며, 표준편차를 double형 실수로 반환합니다.
옵션을 1로 지정하면, 엑셀의 STDEV() 함수에 해당하는 "표본의 표준 편차"를 구할 수 있고
0으로 지정하면, 엑셀의 STDEVP() 함수에 해당하는 "모집단 전체의 표준 편차"를 구할 수 있습니다.
소스 파일명: example.cpp
▶▶ C언어] 배열 합계, 산술 평균 구하기; Array Sum, Average (Mean)
표준편차 계산기: ▶▶ 평균 계산기, 합계 구하기, 표준편차 계산기, 중앙값; Sum Average Stdev Median Calc
standardDeviation(실수_배열명, 배열_요소_개수, 옵션)
의 형식이며, 표준편차를 double형 실수로 반환합니다.
옵션을 1로 지정하면, 엑셀의 STDEV() 함수에 해당하는 "표본의 표준 편차"를 구할 수 있고
0으로 지정하면, 엑셀의 STDEVP() 함수에 해당하는 "모집단 전체의 표준 편차"를 구할 수 있습니다.
실수 배열 표준편차 계산 예제
소스 파일명: example.cpp
#include <stdio.h>
#include <math.h> // sqrt()
double mean(double* array, int size);
double standardDeviation(double* array, int size, int option);
int main(void) {
double foo[] = { 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 };
// 평균 구하기
printf("%f\n", mean(foo, sizeof(foo) / sizeof(foo[0])));
// 출력 결과: 1328.600000
// 표본의 표준편차 구하기 (STDEV)
printf("%f\n", standardDeviation(foo, sizeof(foo) / sizeof(foo[0]), 1));
// 출력 결과: 27.463916
// 모집단 전체의 표준편차 구하기 (STDEVP)
printf("%f\n", standardDeviation(foo, sizeof(foo) / sizeof(foo[0]), 0));
// 출력 결과: 26.054558
return 0;
}
// 산술 평균 구하기
double mean(double* array, int size) {
double sum = 0.0;
for (int i = 0; i < size; i++)
sum += array[i];
return sum / size;
}
// 표준 편차 계산 함수
double standardDeviation(double* array, int size, int option) {
// 배열 요소가 1개밖에 없을 때는
// NaN(숫자가 아님)이라는 의미로
// -1.#IND00 을 반환
if (size < 2) return sqrt(-1.0);
double sum = 0.0;
double sd = 0.0;
double diff;
double meanValue = mean(array, size);
for (int i = 0; i < size; i++) {
diff = array[i] - meanValue;
sum += diff * diff;
}
sd = sqrt(sum / (size - option));
return sd;
}
#include <math.h> // sqrt()
double mean(double* array, int size);
double standardDeviation(double* array, int size, int option);
int main(void) {
double foo[] = { 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 };
// 평균 구하기
printf("%f\n", mean(foo, sizeof(foo) / sizeof(foo[0])));
// 출력 결과: 1328.600000
// 표본의 표준편차 구하기 (STDEV)
printf("%f\n", standardDeviation(foo, sizeof(foo) / sizeof(foo[0]), 1));
// 출력 결과: 27.463916
// 모집단 전체의 표준편차 구하기 (STDEVP)
printf("%f\n", standardDeviation(foo, sizeof(foo) / sizeof(foo[0]), 0));
// 출력 결과: 26.054558
return 0;
}
// 산술 평균 구하기
double mean(double* array, int size) {
double sum = 0.0;
for (int i = 0; i < size; i++)
sum += array[i];
return sum / size;
}
// 표준 편차 계산 함수
double standardDeviation(double* array, int size, int option) {
// 배열 요소가 1개밖에 없을 때는
// NaN(숫자가 아님)이라는 의미로
// -1.#IND00 을 반환
if (size < 2) return sqrt(-1.0);
double sum = 0.0;
double sd = 0.0;
double diff;
double meanValue = mean(array, size);
for (int i = 0; i < size; i++) {
diff = array[i] - meanValue;
sum += diff * diff;
}
sd = sqrt(sum / (size - option));
return sd;
}
▶▶ C언어] 배열 합계, 산술 평균 구하기; Array Sum, Average (Mean)
표준편차 계산기: ▶▶ 평균 계산기, 합계 구하기, 표준편차 계산기, 중앙값; Sum Average Stdev Median Calc
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home