एक विरल मैट्रिक्स एक मैट्रिक्स है जिसमें अधिकांश तत्व 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} }; int i, j, count = 0; int r = 3, c = 3; for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { if (a[i][j] == 0) count++; } } cout<<"The matrix is:"<<endl; for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { cout<<a[i][j]<<" "; } cout<<endl; } cout<<"There are "<<count<<" zeros in the matrix"<<endl; if (count > ((r * c)/ 2)) cout<<"This is a sparse matrix"<<endl; else cout<<"This is not a sparse matrix"<<endl; return 0; }
आउटपुट
The matrix is: 2 0 0 0 3 8 0 9 0 There are 5 zeros in the matrix This is a sparse matrix
उपरोक्त कार्यक्रम में, मैट्रिक्स में शून्य की संख्या की गणना करने के लिए लूप के लिए नेस्टेड का उपयोग किया जाता है। यह निम्नलिखित कोड स्निपेट का उपयोग करके प्रदर्शित किया जाता है।
for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { if (a[i][j] == 0) count++; } }
शून्य की संख्या खोजने के बाद, मैट्रिक्स को नेस्टेड लूप का उपयोग करके प्रदर्शित किया जाता है। यह नीचे दिखाया गया है -
cout<<"The matrix is:"<<endl; for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { cout<<a[i][j]<<" "; } cout<<endl; }
अंत में, शून्य की संख्या प्रदर्शित की जाती है। यदि मैट्रिक्स में शून्य की संख्या आधे से अधिक तत्वों से अधिक है, तो यह प्रदर्शित होता है कि मैट्रिक्स एक विरल मैट्रिक्स है अन्यथा मैट्रिक्स एक विरल मैट्रिक्स नहीं है।
cout<<"There are "<<count<<" zeros in the matrix"<<endl; if (count > ((r * c)/ 2)) cout<<"This is a sparse matrix"<<endl; else cout<<"This is not a sparse matrix"<<endl;