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

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


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

उदाहरण के लिए

इनपुट

col = 2; row = 4

आउटपुट

Count of number of ways to traverse a Matrix are: 4

स्पष्टीकरण

जिस तरीके से हम सेल 0,0 से 2,4 तक पहुंच सकते हैं, वह दिखाया गया है -

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

इनपुट

col = 4; row = 3

आउटपुट

Count of number of ways to traverse a Matrix are: 10

स्पष्टीकरण

We will reduce the problem into smaller recursions. Count ways for
col=3, row=2, then for col=2, row=1 ….. For col=1 or row=1 the answer will be 1. (only right or only down move).

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

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

  • मैट्रिक्स के आयामों के लिए पूर्णांक पंक्ति, कॉलम लें।

  • Functionways_traverse_matrix(int ​​row, int col) आयाम लेता है और मैट्रिक्स को पार करने के तरीकों की संख्या देता है।

  • पंक्ति ==1 के लिए, वापसी 1.

  • col==1 के लिए, वापसी 1.

  • अन्यथा रिकर्सन तरीके_ट्रैवर्स_मैट्रिक्स (temp_1, col) +ways_traverse_matrix (पंक्ति, temp_2) का उपयोग करके तरीकों की गणना करें।

  • यहाँ temp_1=पिछली पंक्ति संख्या और temp_2=पिछला स्तंभ संख्या।

  • अंत में हमें कुल तरीकों की गिनती मिलेगी।

उदाहरण

#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<<"Count the number of ways to traverse a Matrix are: "<<ways_traverse_matrix(row, col);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count the number of ways to traverse a Matrix are: 2

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

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

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

    दो अंक e और p दिए गए हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे हम एक सेट के e तत्वों को p विभाजन/सबसेट में विभाजित कर सकते हैं। उदाहरण के लिए इनपुट e=4 p=2 आउटपुट Count of number of ways to partition a set into k subsets are: 7 स्पष्टीकरण If elements are: a b c d then ways to divide them into

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

    दो नंबर n और m दिए गए हैं जो एक कमरे के फर्श की लंबाई और चौड़ाई को दर्शाते हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनमें 1Xm आकार की टाइलों का उपयोग करके इस मंजिल को टाइल किया जा सकता है। उदाहरण के लिए इनपुट n=3 m=2 आउटपुट Count the number of ways to tile the floor of size n x m using 1 x m size