C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

特定の行列がC++でスパースであるかどうかを確認します


ここでは、行列がスパースであるかどうかを確認する方法を説明します。スパース行列は、ほとんどの要素が0である行列です。スパース行列の定義は、要素の2/3が0の場合、その行列はスパース行列として示されます。これがスパース行列の例です。

特定の行列がC++でスパースであるかどうかを確認します

これを確認するために、マトリックス内の0の数をカウントし、そのカウントが要素全体の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

  1. 特定のツリーグラフが線形であるかどうかをC++で確認します

    ここでは、ツリーグラフが線形であるかどうかを確認する方法を説明します。線形ツリーグラフは1行で表すことができます。これが線形ツリーグラフの例であると仮定します。 しかし、これは線形ではありません- グラフが線形であるかどうかを確認するには、2つの条件に従うことができます ノードの数が1の場合、ツリーグラフは線形です ノードの(n – 2)が次数2の場合 例 #include <iostream> #include <vector> #define N 4 using namespace std; class Graph{    p

  2. それがスパース行列であるかどうかをチェックするC++プログラム

    スパース行列は、要素の大部分が0である行列です。つまり、行列内の要素の半分以上が0である場合、スパース行列と呼ばれます。例- 以下に示す行列には、5つのゼロが含まれています。ゼロの数は行列の要素の半分以上であるため、スパース行列です。 1 0 2 5 0 0 0 0 9 スパース行列かどうかを確認するプログラムは次のとおりです。 例 #include<iostream> using namespace std; int main () {    int a[10][10] = { {2, 0, 0} , {0, 3, 8} , {0, 9, 0} }; &n