ホームページ > バックエンド開発 > C++ > スパース行列用の C プログラム

スパース行列用の C プログラム

PHPz
リリース: 2023-08-27 17:37:06
転載
623 人が閲覧しました

スパース行列用の C プログラム

特定の行列で、ほとんどの要素がゼロである場合、それを疎行列と呼びます。 例 - 3 x3 行列

1 1 0
0 0 2
0 0 0
ログイン後にコピー

この行列では、要素のほとんどが 0 であるため、疎行列になります。

質問

行列がスパースかどうかを確認します。

解決策

  • #行列内のゼロが (行数 * 列数)/2 より大きいと仮定します。

  • すると、この行列は疎行列ですが、それ以外の場合は疎行列ではありません。

手順

次は、指定された行列がスパースかどうかを確認するプログラムです。

デモンストレーション

#include<stdio.h>
#include<stdlib.h>
int main(){
   int row,col,i,j,a[10][10],count = 0;
   printf("Enter row</p><p>");
   scanf("%d",&row);
   printf("Enter Column</p><p>");
   scanf("%d",&col);
   printf("Enter Element of Matrix1</p><p>");
   for(i = 0; i < row; i++){
      for(j = 0; j < col; j++){
         scanf("%d",&a[i][j]);
      }
   }
   printf("Elements are:</p><p>");
   for(i = 0; i < row; i++){
      for(j = 0; j < col; j++){
         printf("%d\t",a[i][j]);
      }
      printf("</p><p>");
   }
   /*checking sparse of matrix*/
   for(i = 0; i < row; i++){
      for(j = 0; j < col; j++){
         if(a[i][j] == 0)
            count++;
      }
   }
   if(count > ((row * col)/2))
      printf("Matrix is a sparse matrix </p><p>");
   else
      printf("Matrix is not sparse matrix</p><p>");
}
ログイン後にコピー

出力

上記のプログラムを実行すると、次の結果が生成されます-

Run 1:
Enter row
3
Enter Column
2
Enter Element of Matrix1
1 0 2 0 2 0
Elements are:
1 0
2 0
2 0
Matrix is not sparse matrix
Run 2:
Enter row
3
Enter Column
2
Enter Element of Matrix1
1 0 0 0 0 0
Elements are:
1 0
0 0
0 0
Matrix is a sparse matrix
ログイン後にコピー

以上がスパース行列用の C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート