矩阵中大于修正平均值的元素数量
原文:https://www . geesforgeks . org/find-number-elements-greater-modified-mean-matrix/
通常矩阵的平均值是矩阵中所有元素的平均值。将修改后的平均值视为行方向最小值和列方向最大值的平均值的下限。行方向的最小值是给定矩阵每行的最小元素,列方向的最大值是每列的最大元素。给定一个 n*m 阶的矩阵,求大于所得新平均值的元素个数。
mean = floor ( (sum(row-wise Min) + sum (col-wise Max )) /
(row_no. + col_no.) )
示例:
Input : mat[][] = {1, 5, 6,
2, 3, 0,
5, 2, 8}
Output : 4
Input : mat[][] = {1, 5,
5, 2}
Output : 2
求所有行方向最小值之和和所有列方向最大值之和。取这个和的平均值,用(n+m)除和值,即行和列的总数。现在,我们有了行方向的最小值和列方向的最大值的平均值,迭代矩阵以找到大于计算平均值的元素数。 以下是上述方法的实现:
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.
Python 3
# 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.
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?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.
?>
java 描述语言
<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
版权属于:月萌API www.moonapi.com,转载请注明出处