import
java.io.*;
class
GFG {
static
float
mean(
float
mid[],
int
freq[],
int
n)
{
float
sum =
0
, freqSum =
0
;
for
(
int
i =
0
; i < n; i++)
{
sum = sum + mid[i] * freq[i];
freqSum = freqSum + freq[i];
}
return
sum / freqSum;
}
static
float
groupedSD(
float
lower_limit[],
float
upper_limit[],
int
freq[],
int
n)
{
float
mid[] =
new
float
[n];
float
sum =
0
, freqSum =
0
, sd;
for
(
int
i =
0
; i < n; i++)
{
mid[i] = (lower_limit[i] + upper_limit[i]) /
2
;
sum = sum + freq[i] * mid[i] * mid[i];
freqSum = freqSum + freq[i];
}
sd = (
float
)Math.sqrt((sum - freqSum * mean(mid, freq, n) *
mean(mid, freq, n)) / (freqSum -
1
));
return
sd;
}
public
static
void
main (String[] args)
{
float
lower_limit[] = {
50
,
61
,
71
,
86
,
96
};
float
upper_limit[] = {
60
,
70
,
85
,
95
,
100
};
int
freq[] = {
9
,
7
,
9
,
12
,
8
};
int
n = lower_limit.length;
System.out.println( groupedSD(lower_limit,
upper_limit, freq, n));
}
}