📜  矩阵的均值和中位数

📅  最后修改于: 2022-05-13 01:57:21.767000             🧑  作者: Mango

矩阵的均值和中位数

给定一个大小为n*n的排序矩阵。计算矩阵的均值中位数
例子:

Input : 1 2 3
        4 5 6
        7 8 9
Output :Mean: 5
        Median: 5

Input : 1 1 1
        2 2 2
        4 4 4
Output :Mean: 2
        Median: 2

Mean of matrix is = 
   (sum of all elements of matrix)/
   (total elements of matrix)
Note that this definition doesn't require
matrix to be sorted and works for all
matrices.

Median of a sorted matrix is calculated as:
1. When n is odd
    median is mat[n/2][n/2]
2. When n is even, median is average
   of middle two elements.
   Middle two elements can be found at indexes
   a[(n-2)/2][n-1] and a[n/2][0]    

如果给定的矩阵是未排序的,我们可以通过首先对矩阵进行排序来找到它的中值。

C++
// CPP program to find mean and median
// of sorted square matrix.
#include 
using namespace std;
 
const int N = 4;
 
// Returns mean of a given matrix of
// size n x n.
double findMean(int a[][N])
{
    int sum = 0;
 
    // total sum calculation of matrix
    for (int i=0; i


Java
// Java program to find mean and median
// of sorted square matrix.
import java.io.*;
 
class GFG
{
     
// Returns mean of a given
// matrix of size n x n.
static double findMean(int a[][],
                    int n)
{
    int sum = 0;
    int N=n;
 
    // total sum calculation of matrix
    for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++)
        sum += a[i][j];
 
    return (double)sum / (N * N);
}
 
// Function for calculating median
static double findMedian(int a[][], int n)
{
    int N = n;
     
    if (N % 2 != 0)
    return a[N / 2][N / 2];
 
    if (N % 2 == 0)
    return (a[(N - 2) / 2][ N - 1] +
            a[ N / 2][0]) / (2.0);
    return 0;
}
 
    // Driver Code
    public static void main (String[] args)
    {
        int a[][]= {{1, 2, 3, 4},
                    {5, 6, 7, 8},
                    {9, 10, 11, 12},
                    {13, 14, 15, 16}};
             
        int n = a.length;
        System.out.println("Mean   : " +
                            findMean(a, n));
        System.out.println("Median : " +
                            findMedian(a, n));
    }
         
         
}
 
// This code is contributed by KRV.


Python3
# Python3 program to find mean and median
# of sorted square matrix.
N = 4
 
# Returns mean of a given matrix of
# size n x n.
def findMean(a):
     
    summ = 0
     
    # total sum calculation of matrix
    for i in range(N):
        for j in range(N):
            summ += a[i][j]
     
    return summ/(N*N)
 
# Function for calculating median
def findMedian(a):
    if (N % 2 != 0):
        return a[N//2][N//2]
    if (N % 2 == 0):
        return (a[(N - 2)//2][N - 1] + a[N//2][0])/2
 
# Driver program
a = [[1, 2, 3, 4],[5, 6, 7, 8],
    [9, 10, 11, 12],[13, 14, 15, 16]]
print("Mean :", findMean(a))
print("Median :",findMedian(a))
 
# This code is contributed by shubhamsingh10


C#
// C# program to find mean and median
// of sorted square matrix.
using System;
 
class GFG {
     
    // Returns mean of a given
    // matrix of size n x n.
    static double findMean(int [,]a, int n)
    {
        int sum = 0;
        int N = n;
     
        // total sum calculation of matrix
        for (int i = 0; i < N; i++)
            for (int j = 0; j < N; j++)
                sum += a[i,j];
     
        return (double)sum / (N * N);
    }
     
    // Function for calculating median
    static double findMedian(int [,]a, int n)
    {
        int N = n;
         
        if (N % 2 != 0)
        return a[N / 2,N / 2];
     
        if (N % 2 == 0)
        return ( a[(N - 2) / 2, (N - 1)] +
                     a[ N / 2, 0] ) / (2.0);
         
        return 0;
    }
 
    // Driver Code
    public static void Main ()
    {
        int [,]a= { { 1,  2,  3,  4},
                    { 5,  6,  7,  8},
                    { 9, 10, 11, 12},
                    {13, 14, 15, 16} };
             
        int n = a.GetLength(0);
         
        Console.WriteLine("Mean : " +
                            findMean(a, n));
                             
        Console.WriteLine("Median : " +
                            findMedian(a, n));
    }
         
}
 
// This code is contributed by Sam007.


PHP


Javascript


输出:

Mean : 8.5
Median : 8.5