Trong một ma trận đã cho, khi hầu hết các phần tử bằng 0 thì chúng ta gọi nó là ma trận thưa. Ví dụ - ma trận 3 x3
1 1 0 0 0 2 0 0 0
Trong ma trận này, hầu hết các phần tử đều bằng 0, vì vậy nó là ma trận thưa thớt.
Vấn đề
Kiểm tra xem ma trận có phải là ma trận thưa thớt hay không.
Giải pháp
-
Giả sử số ZERO trong ma trận lớn hơn (hàng * cột) / 2.
-
Sau đó, ma trận là một ma trận thưa thớt, ngược lại thì không.
Chương trình
Sau đây là chương trình để kiểm tra xem ma trận đã cho có phải là ma trận thưa thớt hay không -
#include<stdio.h> #include<stdlib.h> int main(){ int row,col,i,j,a[10][10],count = 0; printf("Enter row\n"); scanf("%d",&row); printf("Enter Column\n"); scanf("%d",&col); printf("Enter Element of Matrix1\n"); for(i = 0; i < row; i++){ for(j = 0; j < col; j++){ scanf("%d",&a[i][j]); } } printf("Elements are:\n"); for(i = 0; i < row; i++){ for(j = 0; j < col; j++){ printf("%d\t",a[i][j]); } printf("\n"); } /*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 \n"); else printf("Matrix is not sparse matrix\n"); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
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