สูตรคำนวณ Standard Deviation
Variance = (1/n) * Σ(xi - mean)²
Standard Deviation = √Variance
Mean = (1/n) * Σxi
อัลกอริทึม
- อ่านค่าจนกว่าจะได้ -1 (sentinel)
- คำนวณ Sum และ Mean
- คำนวณ Sum of Squared Deviations
- Variance = SumSq / n
- StdDev = sqrt(Variance)
โค้ด C
#include <math.h>
#define MAXSIZE 100
main() {
int i, n;
float value[MAXSIZE], deviation, sum, sumsqr, mean, variance, stddeviation;
sum = sumsqr = n = 0;
printf("Input values: input -1 to end \n");
for (i = 1; i < MAXSIZE; i++) {
scanf("%f", &value[i]);
if (value[i] == -1) break;
sum += value[i];
n += 1;
}
mean = sum / (float)n;
for (i = 1; i <= n; i++) {
deviation = value[i] - mean;
sumsqr += deviation * deviation;
}
variance = sumsqr / (float)n;
stddeviation = sqrt(variance);
printf("\nNumber of items : %d\n", n);
printf("Mean : %f\n", mean);
printf("Standard deviation : %f\n", stddeviation);
}
ตัวอย่าง Output
Input values: input -1 to end
2 4 6 8 12 4.5 6.7 0.3 2.4 -1
Number of items: 9
Mean: 5.100000
Standard deviation: 3.348300
หมายเหตุ: อาร์เรย์เริ่มดัชนี 1 (value[1]...value[n]) ตรงกับอัลกอริทึม