निम्न सहित प्राकृतिक संख्याओं को औपचारिक रूप से सेट के रूप में परिभाषित किया गया है :
- नंबर 0 को खाली सेट के रूप में परिभाषित किया गया है, {}
- के लिए n ≥ 0, संख्या n +1 के रूप में परिभाषित n ∪ { n }।
परिणामस्वरूप, n = {0, 1, ..., n -1}।
इस प्रक्रिया द्वारा परिभाषित पहले नंबर हैं:
- 0 = {}
- 1 = {{}}
- 2 = {{}, {{}}}
- 3 = {{}, {{}}, {{}, {{}}}}
चुनौती
दिया n
, एक सेट के रूप में अपने प्रतिनिधित्व का उत्पादन।
नियम
उत्पादन लगातार किसी भी उपयोग कर सकते हैं ब्रैकेट जैसे चरित्र {}
, []
, ()
या <>
। मनमाना चरित्र (जैसे 01
) की अनुमति नहीं है।
ऊपर के रूप में अल्पविराम के बजाय, विभाजक कोई विराम चिह्न हो सकता है; या यह अक्षम्य हो सकता है।
रिक्त स्थान (newlines नहीं) को मनमाने और असंगत रूप से शामिल किया जा सकता है।
उदाहरण के लिए, वर्ग कोष्ठक और अर्धविराम के साथ संख्या 2 विभाजक के रूप में है [[]; [[]]]
, या समकक्ष है [ [ ]; [ [ ] ] ]
, या यहां तक कि[ [ ] ;[ []]]
जिस क्रम में किसी सेट के तत्व निर्दिष्ट होते हैं, वह कोई मायने नहीं रखता। इसलिए आप प्रतिनिधित्व में किसी भी आदेश का उपयोग कर सकते हैं। उदाहरण के लिए, ये कुछ मान्य आउटपुट हैं 3
:
{{},{{}},{{},{{}}}}
{{{}},{{},{{}}},{}}
{{{}},{{{}},{}},{}}
आप एक प्रोग्राम या फंक्शन लिख सकते हैं । आउटपुट एक स्ट्रिंग हो सकता है या, यदि किसी फ़ंक्शन का उपयोग कर रहे हैं, तो आप एक नेस्टेड सूची या सरणी वापस कर सकते हैं जिसका स्ट्रिंग प्रतिनिधित्व उपरोक्त के अनुरूप है।
परीक्षण के मामलों
0 -> {}
1 -> {{}}
2 -> {{},{{}}}
3 -> {{},{{}},{{},{{}}}}
4 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}
5 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}}
6 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}}}
7 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}}}}