Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để tính toán độ lệch chuẩn

Độ lệch chuẩn được sử dụng để đo độ lệch của dữ liệu so với giá trị trung bình của nó. Công thức toán học để tính độ lệch chuẩn như sau -

$$ s =\ sqrt {Variance} $$

ở đâu

Phương sai $$ =\ frac {1} {n} \:\:\ displaystyle \ sum \ limit_ {i =1} ^ n (x_ {i} -m) ^ {2} $$

$$ m =mean =\ frac {1} {n} \:\ displaystyle \ sum \ limit_ {i =1} ^ n x_ {i} $$


Thuật toán

Tham khảo thuật toán đưa ra bên dưới để tính độ lệch chuẩn cho các số đã cho.

Bước 1 - Đọc n mục.

Bước 2 - Tính tổng và trung bình của các mục.

Bước 3 - Tính toán phương sai.

Bước 4 - Tính toán độ lệch chuẩn.

Logic được sử dụng trong chương trình để tính toán độ lệch chuẩn như sau -

for (i = 1 ; i<= n; i++){
   deviation = value[i] - mean;
   sumsqr += deviation * deviation;
}
variance = sumsqr/(float)n ;
stddeviation = sqrt(variance) ;

Ví dụ

Sau đây là chương trình C để tính toán độ lệch chuẩn cho các số đã cho -

#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);
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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