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

C++ में मैट्रिक्स को पार करने के तरीकों की संख्या गिनें


समस्या विवरण

एक 2D मैट्रिक्स दिया गया है जिसके आयाम row X col हैं। लक्ष्य मैट्रिक्स को सेल 0,0 से सेल row, col तक केवल दाएं और नीचे की चालों का उपयोग करके पार करने के तरीकों की संख्या गिनना है। यानी पहली चाल 0,0 से 0,1 (नीचे) या 1,0 (दाएं) हो सकती है न कि 1,1 (तिरछे)।

उदाहरण

इनपुट

col = 2; row = 4

आउटपुट

मैट्रिक्स को पार करने के तरीकों की संख्या: 4

व्याख्या

सेल 0,0 से 2,4 तक पहुंचने के तरीके नीचे दिखाए गए हैं:

C++ में मैट्रिक्स को पार करने के तरीकों की संख्या गिनें

इनपुट

col = 4; row = 3

आउटपुट

मैट्रिक्स को पार करने के तरीकों की संख्या: 10

व्याख्या

हम समस्या को छोटे पुनरावर्तन में कम करेंगे। col=3, row=2 के तरीके गिनें, फिर col=2, row=1... col=1 या row=1 के लिए उत्तर 1 होगा (केवल दाएं या केवल नीचे की चाल)।

दृष्टिकोण

इस दृष्टिकोण में हम पुनरावर्तन विधि का उपयोग करेंगे। अंत में या तो row या col के 1 होने पर केवल एक तरीका होता है जो 1 सीधी दाएं चाल या 1 सीधी नीचे की चाल है। यह पुनरावर्तन के लिए समाप्ति शर्त होगी।

एल्गोरिदम चरण

  • मैट्रिक्स के आयामों के लिए पूर्णांक row, col लें।
  • फंक्शन ways_traverse_matrix(int row, int col) आयाम लेता है और मैट्रिक्स को पार करने के तरीकों की संख्या लौटाता है।
  • row==1 के लिए, 1 लौटाएं।
  • col==1 के लिए, 1 लौटाएं।
  • अन्यथा पुनरावर्तन का उपयोग करके तरीकों की गणना करें: ways_traverse_matrix(temp_1, col) + ways_traverse_matrix(row, temp_2)।
  • यहां temp_1 = पिछली पंक्ति संख्या और temp_2 = पिछला कॉलम संख्या।
  • अंत में हमें कुल तरीकों की गिनती मिल जाएगी।

C++ कोड उदाहरण

#include <bits/stdc++.h>
using namespace std;

int ways_traverse_matrix(int row, int col) {
    if (row == 1) {
        return 1;
    } else if(col == 1) {
        return 1;
    } else {
        int temp_1 = row - 1;
        int temp_2 = col - 1;
        return ways_traverse_matrix(temp_1, col) + ways_traverse_matrix(row, temp_2);
    }
}

int main() {
    int col = 2;
    int row = 2;
    cout << "मैट्रिक्स को पार करने के तरीकों की संख्या: " << ways_traverse_matrix(row, col);
    return 0;
}

आउटपुट

मैट्रिक्स को पार करने के तरीकों की संख्या: 2
  1. OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें

    छवि में स्थित चेहरों की संख्या गिनना आसान है। पिछले अनुभाग में हमने जो प्रोग्राम लिखा था, उसमें पहले से ही faces.size() में चेहरों की संख्या की जानकारी है। यह कोड faces.size() एक पूर्णांक मान देता है।उदाहरण के लिए, यदि हम int x = faces.size() लिखते हैं, तो x में चेहरों की संख्या होगी।दिए गए छवि से च

  1. C++ में एक सेट को k उपसमुच्चयों में विभाजित करने के तरीकों की संख्या गिनें C++ में एक सेट को k उपसमुच्चयों में विभाजित करने के तरीकों की संख्या गिनें

    समस्या विवरण दो संख्याएं e और p दी गई हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे हम एक सेट के e तत्वों को p पार्टीशन/उपसमुच्चयों में विभाजित कर सकते हैं। उदाहरण इनपुट e=4 p=2 आउटपुट सेट को k उपसमुच्चयों में विभाजित करने के तरीकों की संख्या: 7 व्याख्या यदि तत्व हैं: a b c d तो उन्हें 2 पार्टीशन

  1. C++ में n x m आकार के फर्श को 1 x m टाइलों से टाइल करने के तरीकों की संख्या गिनें C++ में n x m आकार के फर्श को 1 x m टाइलों से टाइल करने के तरीकों की संख्या गिनें

    समस्या विवरण दो संख्याएं n और m दी गई हैं जो कमरे के फर्श की लंबाई और चौड़ाई दर्शाती हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे इस फर्श को 1xm आकार की टाइलों का उपयोग करके टाइल किया जा सकता है। उदाहरण इनपुट n=3 m=2 आउटपुट फर्श को टाइल करने के तरीकों की संख्या: 3 व्याख्या तीन 1x2 टाइलें नीचे दि