特定の行列がC++でスパースであるかどうかを確認します
ここでは、行列がスパースであるかどうかを確認する方法を説明します。スパース行列は、ほとんどの要素が0である行列です。スパース行列の定義は、要素の2/3が0の場合、その行列はスパース行列として示されます。これがスパース行列の例です。
これを確認するために、マトリックス内の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
-
特定のツリーグラフが線形であるかどうかをC++で確認します
ここでは、ツリーグラフが線形であるかどうかを確認する方法を説明します。線形ツリーグラフは1行で表すことができます。これが線形ツリーグラフの例であると仮定します。 しかし、これは線形ではありません- グラフが線形であるかどうかを確認するには、2つの条件に従うことができます ノードの数が1の場合、ツリーグラフは線形です ノードの(n – 2)が次数2の場合 例 #include <iostream> #include <vector> #define N 4 using namespace std; class Graph{ p
-
それがスパース行列であるかどうかをチェックする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