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

बेल नंबर - C++ में सेट को पार्टिशन करने के तरीकों की संख्या

घंटी संख्या n तत्वों के एक सेट को उन सबसेट में विभाजित करने के तरीकों की संख्या को निरूपित करने के लिए उपयोग किया जाता है जो खाली नहीं हैं (यानी कम से कम एक तत्व है)।

इस कार्यक्रम में, हमें n तत्वों का एक सेट दिया जाता है और हमें सेट को गैर-रिक्त उपसमुच्चय में विभाजित करने के तरीकों की संख्या ज्ञात करनी होती है।

उदाहरण

Input : 3
Output : 5

स्पष्टीकरण - तीन तत्वों का समुच्चय {1, 2, 3} दें।

उपसमुच्चय {{1} , {2} , {3}} हैं; {{1} , {2,3}}; {{1 , 2} , {3}}; {{2} , {1 , 3}}; {1 , 2 , 3}।

घंटी संख्या:घंटी संख्या घंटी (एन) 1 से n तक के सभी मूल्यों के लिए s(n,k) के योग का मान देती है। यहाँ s(n,k) k उपसमुच्चय में n तत्वों के विभाजन की संख्या है।

सूत्र होगा -

$$घंटी(n)=\sum_{k=0}^n S(n,k)$$

फ़ंक्शन s(n,k) पुनरावर्ती रूप से -

. के रूप में है

s(n+1,k) =k*s(n,k) + s(n,k-1).

काम कर रहे हैं

k विभाजन में (n+1)वें तत्व को जोड़ने पर, दो संभावनाएं होती हैं -

  • यह मौजूदा विभाजन के k विभाजन में एक जोड़ता है अर्थात s(n,k-1)।

  • विभाजन के सभी सेटों में मूल्य जोड़ना, यानी k*s(n,k).

पहले कुछ बेल नंबर 1 , 1 , 2 ,5 ,15 , 52 , 205

हैं

बेल्स नंबर खोजने के लिए, हमारे पास कुछ तरीके हैं,

  • सरल विधि k =1 से n के लिए एक-एक करके s(n,k) की गणना करें और संख्या के सभी मानों का योग जोड़ें।

  • घंटी त्रिकोण का उपयोग करना घंटी के त्रिकोण का उपयोग नीचे दिए गए अनुसार करना है -

1
1  2
2  3  5
5  7  10  15
15 20 27  37 52

उदाहरण

#include<iostream>
using namespace std;
int bellNumber(int n) {
   int bell[n+1][n+1];
   bell[0][0] = 1;
   for (int i=1; i<=n; i++) {
      bell[i][0] = bell[i-1][i-1];
      for (int j=1; j<=i; j++)
      bell[i][j] = bell[i-1][j-1] + bell[i][j-1];
   }
   return bell[n][0];
}
int main() {
   for (int n=0; n<=5; n++)
   cout<<"Bell Number "<<n<<" is "<< bellNumber(n)<<endl;
   return 0;
}

  1. सी++ में डुडेनी नंबर्स

    संख्या सिद्धांत में परिभाषित एक गणितीय संख्या (विकिपीडिया)। नंबर हेनरी डुडेनी . द्वारा खोजा गया था . इसका गणितीय सूत्र है - यहाँ, हमें एक पूर्णांक n दिया गया है। हमारा काम जांच करना है कि दिया गया नंबर n एक डुडनी नंबर है या नहीं। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: एन =17592 आ

  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. N × 3 ग्रिड को C++ में पेंट करने के तरीकों की संख्या

    मान लीजिए कि हमारे पास आकार n x 3 का ग्रिड है और हम ग्रिड के प्रत्येक सेल को तीन रंगों में से एक के साथ पेंट करना चाहते हैं। रंग लाल, पीला या हरा हैं। अब एक बाधा है कि दो आसन्न कोशिकाओं का रंग समान नहीं है। हमारे पास ग्रिड की पंक्तियों की संख्या n है। हमें यह पता लगाना है कि हम इस ग्रिड को कितने तरी