C ++程序中的对角占优矩阵

在本教程中,我们将编写一个程序来帮助我们找到给定的矩阵是否对角占优。

如果矩阵中除对角线元素之外的元素之和小于对角线矩阵,则该矩阵称为对角线优势矩阵。让我们来看一个例子。

421

352

247

上面的矩阵是对角线主导矩阵。因为

4 > 2 + 1

5 ≥ 3 + 2

7 > 4 + 2

所有对角线元素都大于或等于同一行中非对角线元素的总和。

让我们看看解决问题的步骤。

  • 遍历矩阵的行和列。

    • 求出非对角元素的总和。

    • 将非对角线元素的总和与对角线元素进行比较。

    • 如果非对角元素的总和大于对角元素,则打印“否”。

  • 打印“是”。

示例

让我们看一下代码。

#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;

}

输出结果

如果运行上面的代码,则将得到以下结果。

Yes

结论

以上是 C ++程序中的对角占优矩阵 的全部内容, 来源链接: utcz.com/z/345198.html

回到顶部