You are given an array of n-elements you have to find the mean of the array as mean of all consecutive m-elements of array for all possible m-length array with consecutive elements.

Examples:

Input :arr[] = {3, 5, 1, 8, 9, 4}, m = 4 Output : Mean = 5.16667 Explanation : {3, 5, 1, 8}, {5, 1, 8, 9}, {1, 8, 9, 4} are three set of m-consecu- tive elements. Mean of mean of sets is (17/4 + 23/4 + 22/4 )/ 3 Input : arr[] = {9, 4}, m = 1 Output : Mean = 6.5 Explanation : {9}, {4} are two set of 1-consecutive element. Mean of means of sets is (9 + 4 )/ 2

A **simple solution** is to consider all subarrays of size m, compute their means. Finally return mean of means.

An **efficient solution** is use the Sliding Window Algorithm for this problem where we find sum of m-length window and then add up mean of each window to a value sum. At last we will have our result by dividing total sum by number of window possible and that too is sum /(n-m+1).

## C++

`// CPP program to find mean of means` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// function to find mean vale` `float` `findMean(` `int` `arr[], ` `int` `n, ` `int` `m)` `{` ` ` `// declare sum and winSum (window sum)` ` ` `float` `sum = 0, winSum = 0;` ` ` `int` `i = 0;` ` ` `// find sum for 1st m-length window` ` ` `for` `(; i < m; i++)` ` ` `winSum += arr[i];` ` ` `sum += (winSum / m);` ` ` `// iterate over array to find sum` ` ` `// of all m-length means` ` ` `for` `(; i < n; i++) {` ` ` `winSum = winSum - arr[i - m] + arr[i];` ` ` `sum += (winSum / m);` ` ` `}` ` ` `// mean of means will be sum of means` ` ` `// divided by no of such means` ` ` `return` `(sum / (n - m + 1));` `}` `// Driver code` `int` `main()` `{` ` ` `int` `arr[] = { 2, 5, 7, 1, 9, 3, 9 };` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]);` ` ` `int` `m = 4;` ` ` `cout << ` `"Mean = "` `<< findMean(arr, n, m);` ` ` `return` `0;` `}` |

## Java

`// Java program to find mean of means` `import` `java.util.*;` `import` `java.lang.*;` `public` `class` `GeeksforGeeks{` ` ` ` ` `// function to find mean value` ` ` `public` `static` `float` `findMean(` `int` `arr[], ` `int` `n,` ` ` `int` `m){` ` ` ` ` `// declare sum and winSum (window sum)` ` ` `float` `sum = ` `0` `, winSum = ` `0` `;` ` ` `int` `i = ` `0` `;` ` ` `// find sum for 1st m-length window` ` ` `for` `(; i < m; i++)` ` ` `winSum += arr[i];` ` ` `sum += (winSum / m);` ` ` `// iterate over array to find sum` ` ` `// of all m-length means` ` ` `for` `(; i < n; i++) {` ` ` `winSum = winSum - arr[i - m] + arr[i];` ` ` `sum += (winSum / m);` ` ` `}` ` ` `// mean of means will be sum of means` ` ` `// divided by no of such means` ` ` `return` `(sum / (n - m + ` `1` `));` ` ` `}` ` ` ` ` `// driver code` ` ` `public` `static` `void` `main(String argc[]){` ` ` `int` `arr[] = { ` `2` `, ` `5` `, ` `7` `, ` `1` `, ` `9` `, ` `3` `, ` `9` `};` ` ` `int` `n = ` `7` `;` ` ` `int` `m = ` `4` `;` ` ` `System.out.println(` `"Mean = "` `+` ` ` `findMean(arr, n, m));` ` ` `}` `}` `/*This code is contributed by Sagar Shukla.*/` |

## Python3

`# Python3 program to find mean of means` `# function to find mean vale` `def` `findMean(arr, n, m) :` ` ` ` ` `# declare sum and winSum (window sum)` ` ` `sum` `=` `float` `(` `0` `)` ` ` `winSum ` `=` `float` `(` `0` `)` ` ` `i ` `=` `0` ` ` `# find sum for 1st m-length window` ` ` `while` `(i < m):` ` ` `winSum ` `=` `winSum ` `+` `arr[i]` ` ` `i ` `=` `i ` `+` `1` ` ` `sum` `=` `sum` `+` `(winSum ` `/` `m);` ` ` `# iterate over array to find sum` ` ` `# of all m-length means` ` ` `while` `(i < n):` ` ` `winSum ` `=` `winSum ` `-` `arr[i ` `-` `m] ` `+` `arr[i]` ` ` `sum` `=` `sum` `+` `(winSum ` `/` `m)` ` ` `i ` `=` `i ` `+` `1` ` ` `# mean of means will be sum of means` ` ` `# divided by no of such means` ` ` `return` `(` `sum` `/` `(n ` `-` `m ` `+` `1` `));` `# Driven code` `arr ` `=` `[ ` `2` `, ` `5` `, ` `7` `, ` `1` `, ` `9` `, ` `3` `, ` `9` `]` `n ` `=` `len` `(arr)` `m ` `=` `4` `print` `(` `"Mean = "` `, findMean(arr, n, m))` `# This code is contributed by "rishabh_jain".` |

## C#

`// Java program to find mean of means` `using` `System;` `public` `class` `GeeksforGeeks{` ` ` ` ` `// function to find mean value` ` ` `public` `static` `float` `findMean(` `int` `[]arr, ` `int` `n,` ` ` `int` `m)` ` ` `{` ` ` ` ` `// declare sum and winSum (window sum)` ` ` `float` `sum = 0, winSum = 0;` ` ` `int` `i = 0;` ` ` `// find sum for 1st m-length window` ` ` `for` `(; i < m; i++)` ` ` `winSum += arr[i];` ` ` ` ` `sum += (winSum / m);` ` ` `// iterate over array to find sum` ` ` `// of all m-length means` ` ` `for` `(; i < n; i++) {` ` ` `winSum = winSum - arr[i - m] + arr[i];` ` ` ` ` `sum += (winSum / m);` ` ` `}` ` ` `// mean of means will be sum of means` ` ` `// divided by no of such means` ` ` `return` `(sum / (n - m + 1));` ` ` `}` ` ` ` ` `// driver code` ` ` `public` `static` `void` `Main(){` ` ` `int` `[]arr = { 2, 5, 7, 1, 9, 3, 9 };` ` ` `int` `n = 7;` ` ` `int` `m = 4;` ` ` ` ` `Console.WriteLine(` `"Mean = "` `+` ` ` `findMean(arr, n, m));` ` ` `}` `}` `/* This code is contributed by vt_m.*/` |

## PHP

`<?php` `// PHP program to find mean of means` `// function to find mean vale` `function` `findMean(` `$arr` `, ` `$n` `, ` `$m` `)` `{` ` ` ` ` `// declare sum and` ` ` `// winSum (window sum)` ` ` `$sum` `= 0;` ` ` `$winSum` `= 0;` ` ` `$i` `= 0;` ` ` `// find sum for 1st` ` ` `// m-length window` ` ` `for` `(; ` `$i` `< ` `$m` `; ` `$i` `++)` ` ` `$winSum` `+= ` `$arr` `[ ` `$i` `];` ` ` `$sum` `+= ( ` `$winSum` `/ ` `$m` `);` ` ` `// iterate over array to find sum` ` ` `// of all m-length means` ` ` `for` `(; ` `$i` `< ` `$n` `; ` `$i` `++)` ` ` `{` ` ` `$winSum` `= ` `$winSum` `- ` `$arr` `[ ` `$i` `- ` `$m` `] +` ` ` `$arr` `[ ` `$i` `];` ` ` `$sum` `+= ( ` `$winSum` `/ ` `$m` `);` ` ` `}` ` ` `// mean of means will be sum of means` ` ` `// divided by no of such means` ` ` `return` `(` `$sum` `/ (` `$n` `- ` `$m` `+ 1));` `}` ` ` `// Driver code` ` ` `$arr` `= ` `array` `(2, 5, 7, 1, 9, 3, 9);` ` ` `$n` `=` `count` `(` `$arr` `);` ` ` `$m` `= 4;` ` ` `echo` `"Mean = "` `, findMean(` `$arr` `, ` `$n` `, ` `$m` `);` `// This code is contributed by anuj_67` `?>` |

## Javascript

`<script>` `// Javascript program to find mean of means` `// function to find mean vale` `function` `findMean(arr, n, m)` `{` ` ` `// declare sum and winSum (window sum)` ` ` `var` `sum = 0, winSum = 0;` ` ` `var` `i = 0;` ` ` `// find sum for 1st m-length window` ` ` `for` `(; i < m; i++)` ` ` `winSum += arr[i];` ` ` `sum += (winSum / m);` ` ` `// iterate over array to find sum` ` ` `// of all m-length means` ` ` `for` `(; i < n; i++) {` ` ` `winSum = winSum - arr[i - m] + arr[i];` ` ` `sum += (winSum / m);` ` ` `}` ` ` `// mean of means will be sum of means` ` ` `// divided by no of such means` ` ` `return` `(sum / (n - m + 1));` `}` `// Driver code` `var` `arr = [ 2, 5, 7, 1, 9, 3, 9 ];` `var` `n = arr.length;` `var` `m = 4;` `document.write( ` `"Mean = "` `+ findMean(arr, n, m));` `</script>` |

Output:

Mean = 4.9375

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **Geeks Classes Live**