एक बेल संख्या ( OEIS A000110 ) तरीके n लेबल (विशिष्ट) तत्वों का एक सेट विभाजन की संख्या है। 0 बेल नंबर को 1 के रूप में परिभाषित किया गया है।
आइए कुछ उदाहरण देखें (मैं विभाजन के लिए सबसेट और ब्रेसिज़ को चिह्नित करने के लिए कोष्ठक का उपयोग करता हूं):
1: {1}
2: {[1,2]}, {[1],[2]}
3: {[1,2,3]}, {[1,2],[3]}, {[1,3],[2]}, {[2,3],[1]}, {[1],[2],[3]}
बेल नंबर की गणना करने के कई तरीके हैं , और आप उनमें से किसी का उपयोग करने के लिए स्वतंत्र हैं। एक तरह से यहाँ वर्णित किया जाएगा:
बेल संख्याओं की गणना करने का सबसे आसान तरीका द्विपदीय गुणांकों के लिए पास्कल के त्रिकोण के समान एक त्रिकोण का उपयोग करना है। बेल नंबर त्रिकोण के किनारों पर दिखाई देते हैं। 1 से शुरू होकर, त्रिभुज में प्रत्येक नई पंक्ति का निर्माण पहली प्रविष्टि के रूप में पिछली पंक्ति में अंतिम प्रविष्टि लेकर किया जाता है, और फिर प्रत्येक नई प्रविष्टि को इसके बाएं पड़ोसी और इसके ऊपरी बाएं पड़ोसी में सेट किया जाता है:
1
1 2
2 3 5
5 7 10 15
15 20 27 37 52
आप 0-इंडेक्सिंग या 1-इंडेक्सिंग का उपयोग कर सकते हैं। यदि आप 0-इंडेक्सिंग का उपयोग करते हैं, तो 3आउटपुट का एक इनपुट होना चाहिए 5, लेकिन 2यदि आप 1-इंडेक्सिंग का उपयोग करते हैं तो आउटपुट करना चाहिए ।
आपका प्रोग्राम 15 वीं बेल नंबर तक काम करना चाहिए, आउटपुट करना 1382958545। सिद्धांत रूप में, आपका कार्यक्रम बड़ी संख्या (दूसरे शब्दों में, समाधान को हार्डकोड नहीं) करने में सक्षम होना चाहिए।
EDIT: आपको 0 (अनुक्रमणिका के लिए) या 1 (1-अनुक्रमण के लिए) के इनपुट को संभालने की आवश्यकता नहीं है क्योंकि यह त्रिभुज विधि द्वारा गणना नहीं है।
परीक्षण के मामले (0-अनुक्रमण मानते हुए):
0 -> 1 (OPTIONAL)
1 -> 1
2 -> 2
3 -> 5
4 -> 15
5 -> 52
6 -> 203
7 -> 877
8 -> 4140
9 -> 21147
10 -> 115975
11 -> 678570
12 -> 4213597
13 -> 27644437
14 -> 190899322
15 -> 1382958545
बिल्ट-इन मेथड (जैसे कि बेल्बी [एन] वोल्फ्रैम लैंग्वेज में) का उपयोग करने वाले उत्तर जो सीधे बेल नंबर का उत्पादन करते हैं, गैर-प्रतिस्पर्धी होंगे।
सबसे छोटा कोड (बाइट्स में) जीतता है।
3आउटपुट होना चाहिए 2। फिर 11-इंडेक्सिंग के साथ इनपुट क्या देगा ?



3आउटपुट होना चाहिए5यह15सही होगा? और 1-इंडेक्सिंग के साथ यह आउटपुट होगा5