-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathd1_std_dev.c
More file actions
45 lines (41 loc) · 793 Bytes
/
d1_std_dev.c
File metadata and controls
45 lines (41 loc) · 793 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// 10 days of statistics
#include<stdio.h>
#define MAX 2500
// sigma(std_dev) = (sum(x[i] - mu)^2/n)^0.5
/* In other words std dev is the avg distance of data points to
the mean */
double sqroot(double x)
{
double temp,sqrt;
sqrt = x/2.0;
temp = 0;
while(sqrt != temp)
{
temp = sqrt;
sqrt = (x/temp + temp)/2.0;
}
return sqrt;
}
double std_dev(double mu,int *arr,int n)
{
double stdev=0;
for(int i=0;i<n;i++)
{
stdev += (arr[i] - mu) * (arr[i] - mu);
}
return sqroot(stdev/(double)n);
}
int main(void)
{
int n,arr[MAX];
double mu;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
mu += arr[i];
}
mu /= n;
printf("%.1lf\n",std_dev(mu,arr,n));
return 0;
}