Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Trung bình và trung vị của ma trận trong C++


Trong bài toán này, chúng ta được cho một mảng 2D kích thước n*n. Nhiệm vụ là tạo một chương trình in ra trung bình và trung vị của ma trận trong C++.

Trung bình là trung bình cộng của tập dữ liệu. Trong ma trận, trung bình là trung bình cộng của tất cả các phần tử của ma trận.

Trung bình = (tổng tất cả các phần tử của ma trận) / (số phần tử của ma trận)

Trung vị là phần tử giữa của tập dữ liệu đã sắp xếp. Để làm điều này, chúng ta phải sắp xếp các phần tử của ma trận.

Trung vị được tính như sau:

Nếu n là lẻ, trung vị = matrix[n/2][n/2]

Nếu n là chẵn, trung vị = ((matrix[(n-2)/2][n-1]) + (matrix[n/2][0])) / 2

Ví dụ

Chương trình minh họa hoạt động của giải pháp:

#include <iostream>
using namespace std;
const int N = 4;
int calcMean(int Matrix[][N]) {
    int sum = 0;
    for (int i=0; i<N; i++)
        for (int j=0; j<N; j++)
            sum += Matrix[i][j];
    return (int)sum/(N*N);
}
int calcMedian(int Matrix[][N]) {
    if (N % 2 != 0)
        return Matrix[N/2][N/2];
    if (N%2 == 0)
        return (Matrix[(N-2)/2][N-1] + Matrix[N/2][0])/2;
}
int main() {
    int Matrix[N][N]= {
        {5, 10, 15, 20},
        {25, 30, 35, 40},
        {45, 50, 55, 60},
        {65, 70, 75, 80}
    };
    cout<<"Trung bình của ma trận: "<<calcMean(Matrix)<<endl;
    cout<<"Trung vị của ma trận : "<<calcMedian(Matrix)<<endl;
    return 0;
}

Kết quả

Trung bình của ma trận: 42
Trung vị của ma trận : 42