Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค่าเฉลี่ยและค่ามัธยฐานของเมทริกซ์ใน C++


ในปัญหานี้ เราได้รับอาร์เรย์ 2D ขนาด n*n งานของเราคือสร้างโปรแกรมที่จะพิมพ์ค่าเฉลี่ยและค่ามัธยฐานของเมทริกซ์ใน C++

ค่าเฉลี่ย (Mean) คือค่าเฉลี่ยของชุดข้อมูล ในเมทริกซ์ ค่าเฉลี่ยคือค่าเฉลี่ยขององค์ประกอบทั้งหมดของเมทริกซ์

Mean = (ผลรวมขององค์ประกอบทั้งหมดของเมทริกซ์)/(จำนวนองค์ประกอบของเมทริกซ์)

ค่ามัธยฐาน (Median) คือองค์ประกอบกลางของชุดข้อมูลที่จัดเรียงแล้ว สำหรับสิ่งนี้ เราจะต้องจัดเรียงองค์ประกอบของเมทริกซ์

ค่ามัธยฐานคำนวณได้ดังนี้:

  • ถ้า n เป็นคี่ median = matrix[n/2][n/2]
  • ถ้า n เป็นคู่ median = ((matrix[(n-2)/2][n-1])+(matrix[n/2][0]))/2

ตัวอย่างโค้ด

โปรแกรมแสดงการทำงานของวิธีแก้ปัญหาของเรา:

#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<<"Mean of the matrix: "<<calcMean(Matrix)<<endl;
    cout<<"Median of the matrix : "<<calcMedian(Matrix)<<endl;
    return 0;
}

ผลลัพธ์

Mean of the matrix: 42
Median of the matrix : 42