Program to implement standard deviation of grouped data

Given a class interval and frequency of the class and the task is to find standard deviation of grouped data.
Formula to find standard deviation
Standard Deviation = ?( (?(F x M2 – n x ?2)) / (n-1) )
Where,
F – frequency of the class.
M – mid value of class interval.
? – Mean of the grouped data.
n – sum of frequency.
Examples:
Input : lower_limit[] = {50, 61, 71, 86, 96}
upper_limit[] = {60, 70, 85, 95, 100}
freq[] = {9, 7, 9, 12, 8}
Output : 15.757
Explanation :
Standard deviation = sqrt(287127.75 - 45 *
78.3444 * 78.3444) / (45 - 1)
= 15.757
Input : lower_limit[] = {37, 47, 57, 67}
upper_limit[] = {46, 56, 66, 76}
freq[] = {19, 23, 27, 28}
Output : 10.9817
CPP
// CPP Program to implement standard // deviation of grouped data.#include <bits/stdc++.h>using namespace std;// Function to find mean of grouped data.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;}// Function to find standard// deviation of grouped data.float groupedSD(float lower_limit[], float upper_limit[], int freq[], int n){ float mid[n], 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]; } // Formula to find standard deviation // of grouped data. sd = sqrt((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1)); return sd;}// Driver function.int main(){ // Declare and initialize // the lower limit of interval. float lower_limit[] = { 50, 61, 71, 86, 96 }; // Declare and initialize // the upper limit of interval. float upper_limit[] = { 60, 70, 85, 95, 100 }; int freq[] = { 9, 7, 9, 12, 8 }; // Calculating the size of array. int n = sizeof(lower_limit) / sizeof(lower_limit[0]); cout << groupedSD(lower_limit, upper_limit, freq, n); return 0;} |
Java
// Java program to implement // standard deviation of grouped data.import java.io.*;class GFG { // Function to find mean of grouped data. 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; } // Function to find standard // deviation of grouped data. 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]; } // Formula to find standard deviation // deviation of grouped data. sd = (float)Math.sqrt((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1)); return sd; } // Driver function. public static void main (String[] args) { // Declare and initialize // the lower limit of interval. float lower_limit[] = { 50, 61, 71, 86, 96 }; // Declare and initialize // the upper limit of interval. float upper_limit[] = { 60, 70, 85, 95, 100 }; int freq[] = { 9, 7, 9, 12, 8 }; // Calculating the size of array. int n = lower_limit.length; System.out.println( groupedSD(lower_limit, upper_limit, freq, n)); }}// This code is contributed by vt_m |
Python3
# Python Program to implement standard# deviation of grouped data.import math# Function to find mean of grouped data.def mean( mid, freq, n): sum = 0 freqSum = 0 for i in range(0,n): sum = sum + mid[i] * freq[i] freqSum = freqSum + freq[i] return sum / freqSum # Function to find standard# deviation of grouped data.def groupedSD(lower_limit, upper_limit ,freq , n): mid=[[0] for i in range(0,n)] sum = 0 freqSum = 0 sd=0 for i in range(0,n): mid[i] = (lower_limit[i] + upper_limit[i]) / 2 sum = sum + freq[i] * mid[i] * mid[i] freqSum = freqSum + freq[i] # Formula to find standard deviation # of grouped data. sd = math.sqrt((sum - freqSum * mean(mid, freq, n)* mean(mid, freq, n)) / (freqSum - 1)) return sd# driver code# Declare and initialize# the lower limit of interval.lower_limit= [ 50, 61, 71, 86, 96 ] # Declare and initialize# the upper limit of interval.upper_limit= [ 60, 70, 85, 95, 100 ]freq =[ 9, 7, 9, 12, 8 ] # Calculating the size of array.n = len(lower_limit) print(groupedSD(lower_limit, upper_limit, freq, n))# This code is contributed by Gitanjali. |
C#
// C# program to implement // standard deviation of grouped data.using System;class GFG { // Function to find mean of grouped data. 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; } // Function to find standard // deviation of grouped data. 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]; } // Formula to find standard deviation // deviation of grouped data. sd = (float)Math.Sqrt((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1)); return sd; } // Driver function. public static void Main () { // Declare and initialize // the lower limit of interval. float []lower_limit = { 50, 61, 71, 86, 96 }; // Declare and initialize // the upper limit of interval. float []upper_limit = { 60, 70, 85, 95, 100 }; int []freq = { 9, 7, 9, 12, 8 }; // Calculating the size of array. int n = lower_limit.Length; Console.WriteLine(groupedSD(lower_limit, upper_limit, freq, n)); }}// This code is contributed by vt_m |
PHP
<?php// PHP Program to implement standard // deviation of grouped data.// Function to find mean of grouped data.function mean($mid, $freq, $n){ $sum = 0; $freqSum = 0; for ( $i = 0; $i <$n; $i++) { $sum = $sum + $mid[$i] * $freq[$i]; $freqSum = $freqSum + $freq[$i]; } return $sum / $freqSum;}// Function to find standard// deviation of grouped data.function groupedSD($lower_limit, $upper_limit, $freq, $n){ $mid=array(); $sum = 0; $freqSum = 0; $sd; for ( $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]; } // Formula to find standard deviation // of grouped data. $sd = sqrt(($sum - $freqSum * mean($mid, $freq, $n) * mean($mid, $freq, $n)) / ($freqSum - 1)); return $sd;} // Driver Code // Declare and initialize // the lower limit of interval. $lower_limit = array(50, 61, 71, 86, 96); // Declare and initialize // the upper limit of interval. $upper_limit = array(60, 70, 85, 95, 100); $freq = array( 9, 7, 9, 12, 8 ); // Calculating the size of array. $n = count($lower_limit); echo groupedSD($lower_limit, $upper_limit, $freq, $n); // This code is contributed by anuj_67.?> |
Javascript
<script>// JavaScript program to implement // standard deviation of grouped data. // Function to find mean of grouped data. function mean(mid, freq, n) { let sum = 0, freqSum = 0; for (let i = 0; i < n; i++) { sum = sum + mid[i] * freq[i]; freqSum = freqSum + freq[i]; } return sum / freqSum; } // Function to find standard // deviation of grouped data. function groupedSD(lower_limit, upper_limit, freq, n) { let mid = []; let sum = 0, freqSum = 0, sd; for (let 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]; } // Formula to find standard deviation // deviation of grouped data. sd = Math.sqrt((sum - freqSum * mean(mid, freq, n) * mean(mid, freq, n)) / (freqSum - 1)); return sd; } // Driver code // Declare and initialize // the lower limit of interval. let lower_limit = [50, 61, 71, 86, 96]; // Declare and initialize // the upper limit of interval. let upper_limit = [ 60, 70, 85, 95, 100 ]; let freq = [ 9, 7, 9, 12, 8]; // Calculating the size of array. let n = lower_limit.length; document.write( groupedSD(lower_limit, upper_limit, freq, n));</script> |
Output:
15.757
Time Complexity: O(n)
Auxiliary Space: O(n)
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



