Computer >> Máy Tính >  >> Lập trình >> C ++

Ma trận thống trị theo đường chéo trong chương trình C ++

Trong hướng dẫn này, chúng tôi sẽ viết một chương trình giúp chúng tôi tìm xem liệu ma trận đã cho có ưu thế theo đường chéo hay không.

Ma trận được gọi là ma trận chi phối đường chéo nếu tổng các phần tử trong ma trận không phải phần tử đường chéo nhỏ hơn ma trận đường chéo. Hãy xem một ví dụ.

421
352
247

Ma trận trên là ma trận trội theo đường chéo. Bởi vì

4 > 2 + 1
5 ≥ 3 + 2
7 > 4 + 2

Tất cả các phần tử đường chéo lớn hơn hoặc bằng tổng các phần tử không phải đường chéo trong cùng một hàng.

Hãy xem các bước để giải quyết vấn đề.

  • Lặp lại các hàng và cột của ma trận.

    • Tìm tổng các phần tử không phải đường chéo.

    • So sánh tổng các phần tử không phải đường chéo với phần tử đường chéo.

    • Nếu tổng các phần tử không phải đường chéo lớn hơn phần tử đường chéo, thì in "Không".

  • In "Có".

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
using namespace std;
#define N 3
bool isDiagonallyDominantMatrix(int matrix[N][N], int n) {
   for (int i = 0; i < n; i++) {
      int sum = 0;
      for (int j = 0; j < n; j++) {
         if (i != j) {
            sum += abs(matrix[i][j]);
         }
      }
      if (abs(matrix[i][i]) < sum) {
         return false;
      }
   }
   return true;
}
int main() {
   // int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   int matrix[N][N] = {{4, 2, 1}, {3, 5, 2}, {2, 4, 7}};
   if (isDiagonallyDominantMatrix(matrix, 3)) {
      cout << "Yes" << endl;
   }
   else {
      cout << "No" << endl;
   }
return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

Yes

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.