Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में बाइनरी मैट्रिक्स में 1s से घिरे सभी 0s गिनें


इस ट्यूटोरियल में, हम बाइनरी मैट्रिक्स में 1s द्वारा अवरुद्ध 0s की गिनती खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक बाइनरी मैट्रिक्स प्रदान किया जाएगा। हमारा कार्य मैट्रिक्स में उन सभी 0s को ढूंढना और गिनना है जो 1s द्वारा अवरुद्ध हैं।

उदाहरण

#include <iostream> using namespace std; #define Row 4 #define Col 5 int r[4] = { 0, 0, 1, -1 }; int c[4] = { 1, -1, 0, 0 }; bool isSafe(int x, int y, int M[][Col]) {    if (x >= 0 && x <= Row && y >= 0 &&       y <= Col && M[x][y] == 0)       return true;    return false; } //मैट्रिक्स में DFS करना void DFS(int x, int y, int M[][Col]) {    //नोड को विजिटेड के रूप में चिह्नित करना    M[x][y] = 1;    for (int k = 0; k < 4; k++)       if (isSafe(x + r[k], y + c[k], M))          DFS(x + r[k], y + c[k], M); } //अवरुद्ध 0s की गिनती लौटाना int CountAllZero(int M[][Col]){    for (int i = 0; i < Col; i++)       if (M[0][i] == 0)          DFS(0, i, M);    for (int i = 0; i < Col; i++)       if (M[Row - 1][i] == 0)          DFS(Row - 1, i, M);    for (int i = 0; i < Row; i++)       if (M[i][0] == 0)          DFS(i, 0, M);    for (int i = 0; i < Row; i++)       if (M[i][Col - 1] == 0)          DFS(i, Col - 1, M); //1 से घिरे सभी जीरो गिनना int result = 0; for (int i = 0; i < Row; i++)    for (int j = 0; j < Col; j++)       if (M[i][j] == 0)          result++;    return result; } int main(){    int M[][Col] = { { 1, 1, 1, 0, 1 },{ 1, 0, 0, 1, 0 },{ 1, 0, 1, 0, 1 },{ 0, 1, 1, 1, 1 } };    cout << CountAllZero(M) << endl;    return 0; }

आउटपुट

4

  1. - C++ में बाइनरी मैट्रिक्स में निकटतम 1

    एक बाइनरी मैट्रिक्स दी गई है, हमें प्रत्येक सेल से निकटतम सेल तक की न्यूनतम दूरी ज्ञात करनी है जिसमें 1 है। आइए एक उदाहरण देखते हैं। इनपुट 0 0 1 1 1 0 0 0 0 आउटपुट 1 1 0 0 0 1 1 1 2 न्यूनतम दूरी वह है जो वर्तमान सेल पंक्ति - 1 सेल पंक्ति + वर्तमान सेल स्तंभ - 1 सेल स्तंभ से न्यूनतम है। एल्गोरिदम

  1. - C++ में मैट्रिक्स का सारणिक (Determinant of Matrix)

    एक मैट्रिक्स का सारणिक केवल वर्ग मैट्रिक्स के लिए गणना किया जा सकता है पहली पंक्ति के सहखंड (cofactor) को संबंधित सहखंड के सारणिक से गुणा करके और उन्हें वैकल्पिक चिह्नों के साथ जोड़कर अंतिम परिणाम प्राप्त किया जाता है। $$A = \begin{bmatrix}a & b & c\\d & e & f \\g & h & i \\ \end{bmatrix} |A| = a(

  1. C++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए ऑपरेशनों की गिनती करने का प्रोग्राम C++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए ऑपरेशनों की गिनती करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है। अब एक ऑपरेशन पर विचार करें जहां हम एक सेल लेते हैं और उसे और उसके सभी पड़ोसी सेल्स (ऊपर, नीचे, बाएं, दाएं) को फ्लिप करते हैं। हमें ऑपरेशनों की न्यूनतम संख्या ढूंढनी है जैसे कि मैट्रिक्स में केवल 0 हों। यदि कोई समाधान नहीं है, तो -1 वापस करें। तो, यदि इनप