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
? यह रिकैमैन के अनुक्रम में पहले दिखाई देता है। क्या आपका मतलब है कि पहले आउटपुट जो पहले एक डुप्लिकेट पाया जाता है?