पृष्ठभूमि
1-2-3-जनजातीय अनुक्रम
एक दूसरे के लिए कल्पना करें कि आप निम्नलिखित के साथ मानक पुनरावृत्ति फॉर्मूला को प्रतिस्थापित करके एक रिट्राइव अनुक्रम बना सकते हैं:
मूल रूप से, अगला पाने के लिए अंतिम दो को जोड़ने के बजाय, आप अंतिम तीन को जोड़ते हैं। यह 1-2-3-जनजातीय अनुक्रम का आधार है।
ब्राउन का मानदंड
ब्राउन का मानदंड यह बताता है कि आप किसी पूर्णांक मान को किसी अनुक्रम के सदस्यों के योग के रूप में प्रस्तुत कर सकते हैं:
n
1 से अधिक सभी के लिए ,
चुनौती के लिए इसका क्या मतलब है
आप निम्नलिखित प्रारंभिक स्थितियों द्वारा गठित 1-2-3-ट्रिबोनैचि अनुक्रम के सदस्यों के योग के रूप में किसी भी सकारात्मक पूर्णांक का वर्णन कर सकते हैं:
इस रूप में जाना जाता है, इस क्रम में प्रत्येक मूल्य के लिए, शब्दों के बीच का अनुपात कभी भी 2 से अधिक नहीं होता है (लगभग 1.839 पर औसत अनुपात)।
इस संख्यात्मक प्रतिनिधित्व प्रणाली में कैसे लिखें
मान लीजिए कि आप एक छोटे से एंडियन प्रतिनिधित्व का उपयोग करते हैं। अनुक्रम के सदस्यों को इस तरह पंक्तिबद्ध करें:
1 2 3 6 11 20 37 68
फिर, आप अपना नंबर दर्शाए जाने के लिए लेते हैं (हमारे परीक्षणों के लिए, आइए इसे कहते हैं 63
) और दिए गए 1-2-3-ट्रिबोनैचि के मूल्यों का पता लगाएं, जो कि 63 की राशि है (पहले सबसे बड़े मूल्यों का उपयोग करके!) । यदि संख्या योग का हिस्सा है, तो इसके नीचे एक 1 डालें, यदि नहीं तो 0।
1 2 3 6 11 20 37 68
0 0 0 1 0 1 1 0
आप किसी भी पूर्णांक के लिए ऐसा कर सकते हैं - बस सत्यापित करें कि आप अपने दिए गए इनपुट के नीचे सबसे बड़े मूल्यों का उपयोग करते हैं!
परिभाषा (अंत में)
एक प्रोग्राम या फ़ंक्शन लिखें n
जो 1 और आपकी भाषा की अधिकतम सीमा के बीच निम्नलिखित कुछ सकारात्मक पूर्णांक इनपुट (किसी भी मानक आधार में लिखा गया) करेगा:
- मान को परिभाषित 1-2-3-त्रिभुज के संख्यात्मक प्रतिनिधित्व में परिवर्तित करें।
- इस बाइनरी-जैसे प्रतिनिधित्व का उपयोग करना, और इसे पढ़ें जैसे कि यह बाइनरी था। इसका मतलब यह है कि अंक समान रहते हैं, लेकिन उनका मतलब क्या होता है।
- इस बाइनरी नंबर को लें और इसे मूल संख्या के आधार में परिवर्तित करें।
- इस नए नंबर को आउटपुट करें या लौटाएं।
हालाँकि, जब तक आउटपुट मान्य है, आपको इन चरणों का पालन करने की आवश्यकता नहीं है। यदि आप जादुई रूप से कुछ ऐसा फॉर्मूला खोजें जो छोटा हो (और गणितीय रूप से समतुल्य हो), इसका उपयोग करने के लिए स्वतंत्र महसूस करें।
उदाहरण
फ़ंक्शन f
को परिभाषा द्वारा वर्णित फ़ंक्शन होने दें, और दिए []
गए चरणों का प्रतिनिधित्व करें (जैसा कि थोड़ा-सा एंडियन, हालांकि यह बात नहीं होनी चाहिए) (आपको इस प्रक्रिया का पालन करने की आवश्यकता नहीं है, यह सिर्फ वर्णित प्रक्रिया है):
>>> f(1)
[1]
[1]
[1]
1
>>> f(5)
[5]
[0, 1, 1]
[6]
6
>>> f(63)
[63]
[0, 0, 0, 1, 0, 1, 1]
[104]
104