एक फ़ंक्शन (या प्रोग्राम) जो इनपुट लेता है और आउटपुट प्रदान करता है, एक चक्र कहा जा सकता है यदि फ़ंक्शन को अपने आउटपुट पर बार-बार कॉल करने से अंततः मूल संख्या तक पहुंच जाता है। उदाहरण के लिए, निम्नलिखित कार्य करें:
Input: n 1 2 3 4 5 6
Output: f(n) 5 7 1 3 4 9
हम साथ शुरू करते हैं n=1
, f(n)=5
, f(f(n))=f(5)=4
, f(f(f(n)))=f(4)=3
, f(f(f(f(n))))=f(3)=1
।
यह लिखा है (1 5 4 3)
। चूंकि इस लूप में 4 अद्वितीय संख्याएं हैं, इसलिए यह लंबाई 4 का एक चक्र है।
आपकी चुनौती एक प्रोग्राम या फ़ंक्शन लिखना है जिसमें हर संभव लंबाई के चक्र हैं। यही है, लंबाई 1 का एक चक्र होना चाहिए, लंबाई 2 का, और इसी तरह।
इसके अलावा, आपका फ़ंक्शन / प्रोग्राम पॉजिटिव पूर्णांकों से पॉजिटिव पूर्णांकों तक होना चाहिए, और यह बायजेक्टिव होना चाहिए , जिसका अर्थ है कि सभी पॉजिटिव पूर्णांकों पर हर संभव आउटपुट वैल्यू के लिए बिल्कुल एक इनपुट वैल्यू होनी चाहिए। इसे दूसरे तरीके से रखने के लिए, फ़ंक्शन / प्रोग्राम को पॉजिटिव पूर्णांकों के क्रमांकन की गणना करनी चाहिए।
विवरण: किसी भी मानक इनपुट / आउटपुट सिस्टम को अनुमति दी जाती है, जिसमें STDIN, STDOUT, फ़ंक्शन तर्क, रिटर्न आदि शामिल हैं। मानक कमियां निषिद्ध हैं।
आपको अपने डेटा प्रकारों की सीमाओं के बारे में चिंता करने की आवश्यकता नहीं है - उपरोक्त गुणों को केवल इस धारणा के तहत पकड़ना होगा कि int
या float
उदाहरण के लिए कोई मूल्य पकड़ सकता है।
इनपुट पर फ़ंक्शन के व्यवहार पर कोई प्रतिबंध नहीं है जो सकारात्मक पूर्णांक नहीं हैं, और उन इनपुट / आउटपुट को अनदेखा किया जाएगा।
स्कोरिंग कोड गोल्फ है बाइट्स में, सबसे छोटा कोड जीतता है।