Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

nवें कैटलन नंबर के लिए सी प्रोग्राम

एक इंटरगर दिया गया n; कार्य उस nवें स्थान पर कातालान संख्या का पता लगाना है। इसलिए, प्रोग्राम करने से पहले हमें पता होना चाहिए कि कैटलन नंबर क्या है?

कैटलन संख्या प्राकृतिक संख्याओं का अनुक्रम है, जो विभिन्न गिनती संख्या समस्याओं के रूप में होती है।

कैटलन संख्याएँ C0, C1, C2,… Cn सूत्र द्वारा संचालित हैं -

$$c_{n}=\frac{1}{n+1}\binom{2n}{n} =\frac{2n!}{(n+1)!n!}$$

प्रत्येक n =0, 1, 2, 3, ... के लिए कुछ कैटलन संख्याएं हैं 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, ...

इसलिए यदि हम n =3 दर्ज करते हैं तो हमें प्रोग्राम से आउटपुट के रूप में 5 प्राप्त करना चाहिए

कैटलन नंबरों के कुछ अनुप्रयोगों में से कुछ -

  • n कुंजियों के साथ संभावित बाइनरी सर्च ट्री की संख्या की गणना करना।
  • कोष्ठक के n युग्म वाले व्यंजकों की संख्या ज्ञात करना जो सही सुमेलित हैं। जैसे n =3 के लिए संभावित कोष्ठक व्यंजक ((())), ()(()), ()()(), (())(), (()()) होगा।
  • सर्कल असंबद्ध जीवाओं पर बिंदु को जोड़ने के तरीकों की संख्या ढूँढना, और भी बहुत कुछ।

उदाहरण

Input: n = 6
Output: 132
Input: n = 8
Output: 1430

दृष्टिकोण हम दी गई समस्या को हल करने के लिए उपयोग करेंगे -

  • टेकिंग और इनपुट एन.
  • जांचें कि n <=1 तो, 1 लौटाएं
  • i=0 से i
  • प्रत्येक i सेट परिणाम के लिए =परिणाम + (कातालान(i)*catalan(n-i-1))
  • परिणाम लौटाएं और प्रिंट करें।

एल्गोरिदम

Start
   Step 1 -> In function unsigned long int catalan(unsigned int n)
      If n <= 1 then,
         Return 1
      End if
      Declare an unsigned long variable res = 0
      Loop For i=0 and i<n and i++
         Set res = res + (catalan(i)*catalan(n-i-1))
      End Loop
      Return res
   Step 2 -> int main()
   Declare an input n = 6
   Print "catalan is : then call function catalan(n)
Stop

उदाहरण

#include <stdio.h>
// using recursive approach to find the catalan number
unsigned long int catalan(unsigned int n) {
   // Base case
   if (n <= 1) return 1;
   // catalan(n) is sum of catalan(i)*catalan(n-i-1)
   unsigned long int res = 0;
   for (int i=0; i<n; i++)
      res += catalan(i)*catalan(n-i-1);
   return res;
}
//Main function
int main() {
   int n = 6;
   printf("catalan is :%ld\n", catalan(n));
   return 0;
}

आउटपुट

catalan is :132

  1. एक संख्या के भाज्य के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन −हमारा कार्य n के भाज्य की गणना करना। एक गैर-ऋणात्मक संख्या का भाज्य − . द्वारा दिया जाता है n! = n*n-1*n-2*n-3*n-4*.................*3*2*1 हमारे पास समस्या के दो संभावित समाधान हैं पुनरावर्ती

  1. एन-वें फाइबोनैचि संख्या के लिए पायथन कार्यक्रम

    इस लेख में, हम nवें फाइबोनैचि संख्या की गणना करेंगे। एक फिबोनाची संख्या नीचे दिए गए पुनरावर्तन संबंध द्वारा परिभाषित किया गया है - Fn = Fn-1 + Fn-2 साथ एफ0 =0 और एफ1 =1. सबसे पहले, कुछ फाइबोनैचि संख्याएं हैं 0,1,1,2,3,5,8,13,.................. हम फाइबोनैचि संख्याओं . की गणना कर सकते हैं रिकर्सन

  1. एनएच कैटलन नंबर के लिए पायथन प्रोग्राम

    इस लेख में, हम nवें कातालान संख्या की गणना के बारे में जानेंगे। कैटलन नंबर प्राकृतिक संख्याओं का एक क्रम है जो पुनरावर्ती सूत्र द्वारा परिभाषित किया जाता है - $$C_{0}=1\:और\:C_{n+1}=\displaystyle\sum\limits_{i=0}^n C_{i}C_{n-i} \:n\geq0;$$ के लिए n =0, 1, 2, 3, … के लिए पहले कुछ कैटलन नंबर 1, 1,