차리토 실험실
분산계산 C코드
수차리토
2023. 1. 19. 20:27
#include <stdio.h>
#include <math.h>
double variance(double data[], int n) {
double sum = 0.0, mean, deviation, variance = 0.0;
for(int i=0; i<n; i++) {
sum += data[i];
}
mean = sum/n;
for(int i=0; i<n; i++) {
deviation = data[i] - mean;
variance += pow(deviation,2);
}
return variance/n;
}
int main() {
double data[] = {1.2, 2.3, 3.4, 4.5, 5.6};
int n = sizeof(data)/sizeof(data[0]);
printf("Variance of the given data set is: %.6lf\n", variance(data, n));
return 0;
}
math.h 없이 짜기
#include <stdio.h>
double variance(double data[], int n) {
double sum = 0.0, mean, deviation, variance = 0.0;
for(int i=0; i<n; i++) {
sum += data[i];
}
mean = sum/n;
for(int i=0; i<n; i++) {
deviation = data[i] - mean;
variance += deviation * deviation;
}
return variance/n;
}
int main() {
double data[] = {1.2, 2.3, 3.4, 4.5, 5.6};
int n = sizeof(data)/sizeof(data[0]);
printf("Variance of the given data set is: %.6lf\n", variance(data, n));
return 0;
}
pow() 함수를 deviation*deviation 으로 대체하였습니다.