Recamán के अनुक्रम को इस प्रकार परिभाषित किया गया है:
या छद्म कोड में:
a(0) = 0,
if (a(n - 1) - n) > 0 and it is not
already included in the sequence,
a(n) = a(n - 1) - n
else
a(n) = a(n - 1) + n.
पहले नंबर हैं ( OEIS A005132 ):
0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9, 24, 8, 25, 43, 62, 42, 63, 41, 18, 42
यदि आप इस क्रम का अध्ययन करते हैं, तो आप देखेंगे कि डुप्लिकेट हैं, उदाहरण के लिए a(20) = a(24) = 42(0-अनुक्रमित)। यदि अनुक्रम में इसके सामने कम से कम एक समरूप संख्या है तो हम एक नंबर को डुप्लिकेट कहेंगे।
चुनौती:
एक पूर्णांक इनपुट k लें , और आउटपुट या तो पहले k डुप्लिकेट संख्याओं के क्रम में पाए जाते हैं जो उन्हें Recamán's Sequence में डुप्लिकेट के रूप में मिलता है, या केवल k 'th संख्या।
यह पहली डुप्लिकेट संख्या हैं:
42, 43, 78, 79, 153, 154, 155, 156, 157, 152, 265, 261, 262, 135, 136, 269, 453, 454, 257, 258, 259, 260, 261, 262
ध्यान देने योग्य कुछ बातें:
- a (n) एक डुप्लिकेट के रूप में गिना नहीं जाता है अगर (0) ... (n-1) में समान संख्याएं नहीं हैं , भले ही a (n + m) == a (n) ।
- 42 43 से पहले होगा, क्योंकि इसकी नकल 43 के डुप्लिकेट से पहले होती है
- अनुक्रम को क्रमबद्ध नहीं किया गया है
- इस क्रम में डुप्लिकेट तत्व भी हैं। उदाहरण के लिए 12 वीं और 23 वीं संख्या दोनों 262 (0-अनुक्रमित) हैं।
परीक्षण के मामले (0-अनुक्रमित)
k Output
0 42
9 152
12 262
23 262
944 5197
945 10023
10000 62114
यह कोड-गोल्फ है , इसलिए प्रत्येक भाषा में सबसे छोटा कोड जीतता है!
स्पष्टीकरण को प्रोत्साहित किया जाता है!
43पहले आउटपुट क्यों नहीं है 42? यह रिकैमैन के अनुक्रम में पहले दिखाई देता है। क्या आपका मतलब है कि पहले आउटपुट जो पहले एक डुप्लिकेट पाया जाता है?