इस लेख में, हमें एक प्रश्न दिया गया है जिसमें हमें बिंदु ए से बी तक कुल तरीकों को खोजने की जरूरत है जहां ए और बी निश्चित बिंदु हैं, यानी ए ग्रिड में शीर्ष-बाएं बिंदु है और बी नीचे है उदाहरण के लिए ग्रिड में दायां बिंदु -
Input : N = 5 Output : 252 Input : N = 4 Output : 70 Input : N = 3 Output : 20
दी गई समस्या में, हम सरल टिप्पणियों द्वारा उत्तर को औपचारिक रूप दे सकते हैं और अपने परिणाम प्राप्त कर सकते हैं।
समाधान खोजने के लिए दृष्टिकोण
इस उपागम में, हम प्रेक्षणों द्वारा दी गई समस्या के लिए एक सूत्र बनाते हैं कि ग्रिड के माध्यम से A से B तक यात्रा करने के लिए, हमें n बार सही दिशा में और n बार नीचे की दिशा में यात्रा करने की आवश्यकता होती है, इसका मतलब है कि हमें करने की आवश्यकता है इन पथों के संयोजन की सभी संभावनाओं को खोजें, जिससे हमें (n+n) और n के संयोजन का सूत्र मिलता है।
उदाहरण
#include<bits/stdc++.h> using namespace std; int fact(int n){ // factorial function if(n <= 1) return 1; return n * fact(n-1); } int main() { int n = 5; // given n int answer = 0; // our answer answer = fact(n+n); // finding factorial of 2*n answer = answer / (fact(n) * fact(n)); // (2*n)! / (n! + n!) cout << answer << "\n"; }
आउटपुट
252
उपरोक्त कोड की व्याख्या
इस कोड में, हम 2*n से n के संयोजन के सूत्र की गणना करते हैं क्योंकि हम जानते हैं कि बिंदु A से B तक यात्रा करने के लिए, हमें दो दिशाओं में ठीक 2*n संचालन की आवश्यकता होगी, अर्थात, एक दिशा में n ऑपरेशन और दूसरे में n ऑपरेशन और इसलिए हम इन ऑपरेशनों के सभी संभावित संयोजनों को पाते हैं, अर्थात (2*n)!/ (n! + n!)। दिए गए प्रोग्राम की समग्र समय जटिलता O(1) है, जिसका अर्थ है कि हमारी जटिलता दिए गए n पर निर्भर नहीं करती है।
निष्कर्ष
इस लेख में, हमने ग्रिड में एक बिंदु से दूसरे बिंदु तक जाने के तरीकों की संख्या खोजने के लिए एक समस्या पर चर्चा की। हमने इस समस्या के लिए C++ प्रोग्राम और हमारे द्वारा हल किए गए संपूर्ण दृष्टिकोण को भी सीखा। हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।