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

ตรวจสอบว่าเมทริกซ์ที่กำหนดนั้นกระจัดกระจายหรือไม่ใน C ++


เราจะมาดูวิธีการตรวจสอบว่าเมทริกซ์เบาบางหรือไม่ เมทริกซ์แบบกระจายเป็นเมทริกซ์ที่องค์ประกอบส่วนใหญ่เป็น 0 คำจำกัดความของเมทริกซ์แบบกระจายคือ ถ้าองค์ประกอบที่ 2/3 เป็น 0 เมทริกซ์นั้นจะถูกแสดงเป็นเมทริกซ์แบบกระจาย นี่คือตัวอย่างของเมทริกซ์กระจัดกระจาย

ตรวจสอบว่าเมทริกซ์ที่กำหนดนั้นกระจัดกระจายหรือไม่ใน C ++

ในการตรวจสอบ เราจะนับจำนวน 0s ในเมทริกซ์ ถ้าจำนวนนั้นมากกว่า 2/3 ขององค์ประกอบทั้งหมด ก็จะเบาบาง

ตัวอย่าง

#include <iostream>
#include <cmath>
#define MAX 5
using namespace std;
bool isSparseMatrix(int arr[][MAX], int m, int n) {
   int counter = 0;
   for (int i = 0; i < m; i++)
   for (int j = 0; j <n; j++)
   if (arr[i][j] == 0)
      counter++;
   return (counter > (2*(m * n) / 3));
}
int main() {
   int matrix[MAX][MAX] = {
      {0, 2, 0, 0, 0},
      {8, 0, 0, 0, 0},
      {0, 3, 0, 0, 0},
      {0, 9, 0, 3, 0},
      {0, 0, 0, 0, 4}
   };
   if(isSparseMatrix(matrix, MAX, MAX)){
      cout << "This is sparse matrix";
   } else {
      cout << "This is not sparse matrix";
   }
}

ผลลัพธ์

This is sparse matrix