Normalmente, la media de la array es el promedio de todos los elementos presentes en la array. Considere una media modificada como el piso de la media del mínimo por filas y el máximo por columnas. El mínimo por fila es el elemento mínimo de cada fila de la array dada y el máximo por columna es el elemento máximo de cada columna. Dada una array de orden n*m, hallar el número de elementos mayor que la nueva media obtenida.
mean = floor ( (sum(row-wise Min) + sum (col-wise Max )) / (row_no. + col_no.) )
Ejemplos:
Input : mat[][] = {1, 5, 6, 2, 3, 0, 5, 2, 8} Output : 4 Input : mat[][] = {1, 5, 5, 2} Output : 2
Encuentre la suma de todos los mínimos por filas y la suma de todos los máximos por columnas. Tome la media de esta suma dividiendo el valor de la suma con (n+m), es decir, el número total de filas y columnas. Ahora, como tenemos la media del mínimo por filas y el máximo por columnas, itere sobre la array para encontrar el número de elementos mayor que la media calculada
A continuación se muestra la implementación del enfoque anterior:
C++
// CPP program to count number of // elements greater than mean #include <bits/stdc++.h> using namespace std; // define constant for row and column #define n 4 #define m 5 // function to count elements // greater than mean int countElements(int mat[][m]) { // For each row find minimum // element and add to rowSum int rowSum = 0; for (int i = 0; i < n; i++) { int min = mat[i][0]; for (int j = 1; j < m; j++) if (mat[i][j] < min) min = mat[i][j]; rowSum += min; } // For each column find maximum // element and add to colSum int colSum = 0; for (int i = 0; i < m; i++) { int max = mat[0][i]; for (int j = 1; j < n; j++) if (max < mat[j][i]) max = mat[j][i]; colSum += max; } // Calculate mean of row-wise // minimum and column wise maximum int mean = (rowSum + colSum) / (m + n); // For whole matrix count // elements greater than mean int count = 0; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (mean < mat[i][j]) count++; return count; } // driver function int main() { int mat[n][m] = { 5, 4, 2, 8, 7, 1, 5, 8, 3, 4, 8, 5, 4, 6, 0, 2, 5, 8, 9, 4 }; cout << countElements(mat); return 0; }
Java
// Java program to count // number of elements // greater than mean class GFG { static int n = 4, m = 5; // function to count // elements greater // than mean static int countElements(int mat[][]) { // For each row find // minimum element // and add to rowSum int rowSum = 0; for (int i = 0; i < n; i++) { int min = mat[i][0]; for (int j = 1; j < m; j++) if (mat[i][j] < min) min = mat[i][j]; rowSum += min; } // For each column // find maximum // element and add // to colSum int colSum = 0; for (int i = 0; i < m; i++) { int max = mat[0][i]; for (int j = 1; j < n; j++) if (max < mat[j][i]) max = mat[j][i]; colSum += max; } // Calculate mean of // row-wise minimum // and column wise // maximum int mean = (rowSum + colSum) / (m + n); // For whole matrix // count elements // greater than mean int count = 0; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (mean < mat[i][j]) count++; return count; } // driver function public static void main(String[] args) { int mat[][] = {{ 5, 4, 2, 8, 7}, {1, 5, 8, 3, 4}, {8, 5, 4, 6, 0}, {2, 5, 8, 9, 4}}; System.out.println(countElements(mat)); } } // This article is contribute by Prerna Saini.
Python3
# Python3 program to count # number of elements # greater than mean n = 4; m = 5; # Function to count # elements greater # than mean def countElements(mat): # For each row find # minimum element # and add to rowSum rowSum = 0; for i in range(n): min = mat[i][0]; for j in range(1, m): if (mat[i][j] < min): min = mat[i][j]; rowSum += min; # For each column # find maximum # element and add # to colSum colSum = 0; for i in range(m): max = mat[0][i]; for j in range(1, n): if (max < mat[j][i]): max = mat[j][i]; colSum += max; # Calculate mean of # row-wise minimum # and column wise # maximum mean = ((rowSum + colSum) / (m + n)); # For whole matrix # count elements # greater than mean count = 0; for i in range(n): for j in range(m): if (mean < mat[i][j]): count += 1; return count; # Driver code if __name__ == '__main__': mat = [[5, 4, 2, 8, 7], [1, 5, 8, 3, 4], [8, 5, 4, 6, 0], [2, 5, 8, 9, 4]]; print(countElements(mat)); # This code is contributed by 29AjayKumar
C#
// C# program to count number of // elements greater than mean using System; class GFG { static int n = 4, m = 5; // function to count elements // greater than mean static int countElements(int [,]mat) { // For each row find minimum // element and add to rowSum int rowSum = 0; for (int i = 0; i < n; i++) { int min = mat[i,0]; for (int j = 1; j < m; j++) if (mat[i,j] < min) min = mat[i,j]; rowSum += min; } // For each column find maximum // element and add to colSum int colSum = 0; for (int i = 0; i < m; i++) { int max = mat[0,i]; for (int j = 1; j < n; j++) if (max < mat[j,i]) max = mat[j,i]; colSum += max; } // Calculate mean of row-wise minimum // and column wise maximum int mean = (rowSum + colSum) / (m + n); // For whole matrix count // elements greater than mean int count = 0; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (mean < mat[i,j]) count++; return count; } // Driver function public static void Main() { int [,]mat = {{5, 4, 2, 8, 7}, {1, 5, 8, 3, 4}, {8, 5, 4, 6, 0}, {2, 5, 8, 9, 4}}; Console.Write(countElements(mat)); } } // This article is contribute by nitin mittal.
PHP
<?php // PHP program to count number of // elements greater than mean // define constant for // row and column $n = 4; $m = 5; // function to count elements // greater than mean function countElements($mat) { // For each row find minimum // element and add to rowSum $rowSum = 0; global $n, $m; for ($i = 0; $i < $n; $i++) { $min = $mat[$i][0]; for ($j = 1; $j < $m; $j++) if ($mat[$i][$j] < $min) $min = $mat[$i][$j]; $rowSum += $min; } // For each column find maximum // element and add to colSum $colSum = 0; for ($i = 0; $i < $m; $i++) { $max = $mat[0][$i]; for ($j = 1; $j < $n; $j++) if ($max < $mat[$j][$i]) $max = $mat[$j][$i]; $colSum += $max; } // Calculate mean of row-wise // minimum and column wise maximum $mean = ($rowSum + $colSum) / ($m + $n); // For whole matrix count // elements greater than mean $count = 0; for ($i = 0; $i < $n; $i++) for ($j = 0; $j < $m; $j++) if ($mean < $mat[$i][$j]) $count++; return $count; } // Driver Code $mat = array(array(5, 4, 2, 8, 7), array(1, 5, 8, 3, 4), array(8, 5, 4, 6, 0), array(2, 5, 8, 9, 4)); echo countElements($mat); // This code is contribute by vt_m. ?>
Javascript
<script> // Javascript program to count number of // elements greater than mean // define constant for row and column var n = 4 var m = 5 // function to count elements // greater than mean function countElements(mat) { // For each row find minimum // element and add to rowSum var rowSum = 0; for (var i = 0; i < n; i++) { var min = mat[i][0]; for (var j = 1; j < m; j++) if (mat[i][j] < min) min = mat[i][j]; rowSum += min; } // For each column find maximum // element and add to colSum var colSum = 0; for (var i = 0; i < m; i++) { var max = mat[0][i]; for (var j = 1; j < n; j++) if (max < mat[j][i]) max = mat[j][i]; colSum += max; } // Calculate mean of row-wise // minimum and column wise maximum var mean = (rowSum + colSum) / (m + n); // For whole matrix count // elements greater than mean var count = 0; for (var i = 0; i < n; i++) for (var j = 0; j < m; j++) if (mean < mat[i][j]) count++; return count; } // driver function var mat = [ [5, 4, 2, 8, 7], [1, 5, 8, 3, 4], [8, 5, 4, 6, 0], [2, 5, 8, 9, 4 ]]; document.write( countElements(mat)); </script>
11
Publicación traducida automáticamente
Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA