पुलिस का धागा
इस सूत्र में, आपका कार्य किसी भी पूर्णांक श्रृंखला को बनाने के लिए एक पुनरावृत्ति-आधारित कार्यक्रम / कार्य करना है। लुटेरे कोशिश करेंगे और लुटेरों के धागे में एक गैर-पुनरावर्ती समाधान ढूंढेंगे ।
चुनौती सिनॉप्सिस
कई भाषाओं में, पुनरावर्ती कार्य एक प्रोग्रामिंग कार्य को काफी सरल कर सकते हैं। हालांकि, एक उचित पुनरावृत्ति के लिए सिंटैक्स ओवरहेड कोड-गोल्फ में इसकी प्रयोज्य को सीमित कर सकता है।
पुलिस एक कार्यक्रम या समारोह के लिए एक एकल पूर्णांक लेने पैदा करेगा n
, जो पहली बार उत्पन्न होगा n
एक पूर्णांक श्रृंखला के प्रविष्टियों, केवल प्रत्यावर्तन का उपयोग कर 1 । उन्हें यह भी सुनिश्चित करना चाहिए कि उनकी प्रविष्टि को सुरक्षित रूप से चिह्नित करने के लिए अनुक्रम उत्पन्न करने के लिए एक छोटा अप्रतिदेय तरीका है।
लुटेरों एक की तलाश करेगा कम ही पूर्णांक श्रृंखला पैदा करने एक ही भाषा में कार्यक्रम या समारोह, कोई प्रत्यावर्तन का उपयोग कर 2 ।
यदि पुलिस की सबमिशन दस दिनों (240 घंटों) के भीतर क्रैक नहीं होती है, तो पुलिस यह साबित करेगी कि वास्तव में अपने स्वयं के समाधान का खुलासा करके कम गैर-पुनरावर्ती दृष्टिकोण होना संभव था। वे तब अपने सबमिशन को सुरक्षित मान सकते हैं ।
पुलिस चुनौती का विजेता सबसे छोटा (के अनुसार) होगा कोड-गोल्फ के ) रिकर्सियन-आधारित सबमिशन सुरक्षित चिह्नित होंगे।
लुटेरों की चुनौती का विजेता सबसे अधिक समाधान करने वाले डाकू होंगे।
1: इसे केवल सिंटैक्स में पुनरावर्ती होना चाहिए; आपको उदाहरण के लिए टेल कॉल ऑप्टिमाइज़ेशन के बारे में चिंता करने की आवश्यकता नहीं है।
2: फिर से, सिंटैक्स में गैर-पुनरावर्ती; तो आप एक पुनरावर्ती समाधान पोस्ट नहीं कर सकते हैं और पूंछ कॉल अनुकूलन के लिए लूप के लिए इसके संकलन का दावा कर सकते हैं।
प्रस्तुत करने की आवश्यकताएँ
प्रत्येक सबमिशन एक पूर्णांक n
(शून्य- या एक-आधारित) लेगा । इसके बाद सबमिशन n
पसंद के पूर्णांक श्रृंखला की पहली प्रविष्टियों को आउटपुट या वापस करेगा । (ध्यान दें कि यह पूर्णांक श्रृंखला पर निर्भर नहीं होना चाहिए n
)। इनपुट और आउटपुट विधि पुनरावर्ती और गैर-पुनरावर्ती दृष्टिकोण के बीच भिन्न हो सकती है। पूर्णांक श्रृंखला कम से कम 5 की लंबाई के साथ कोई भी निर्धारक श्रृंखला हो सकती है। श्रृंखला को ठीक से समझाया जाना चाहिए।
आपके सबमिशन में मनमाने बड़े के लिए काम नहीं करना है n
, लेकिन कम से कम काम करना चाहिए n=5
। गैर-पुनरावर्ती दृष्टिकोण को n
पुनरावर्ती दृष्टिकोण या कम से कम n=2^15-1
, जो भी छोटा हो, तक काम करने में सक्षम होना चाहिए ।
प्रत्यावर्तन
इस चुनौती के लिए, रिकर्सन को एक फ़ंक्शन (या फ़ंक्शन-जैसे निर्माण) का उपयोग करके वांछित अनुक्रम बनाने के रूप में परिभाषित किया जाता है जो खुद को कॉल करता है (या खुद को कॉल करने वाले कार्यों के अनुक्रम को कॉल करता है; इसमें वाई कॉम्बिनेटर जैसे निर्माण शामिल हैं)। पुनरावृत्ति की गहराई अनंत तक n
जाती है, क्योंकि अनंत तक जाती है। गैर-पुनरावर्ती दृष्टिकोण कुछ भी है जो पुनरावर्ती नहीं है ।
n
सैद्धांतिक रूप से सही होने पर बड़े पैमाने पर काम करता है, लेकिन इसे समय या मेमोरी की कमी के कारण नहीं चलाया जा सकता है?
n=5
गणना की जानी चाहिए
xfor
कि किसी प्रकार के आयात के माध्यम से उपलब्ध नहीं है) का उपयोग नहीं करने का मूल तरीका नहीं है, इसलिए शायद यह भाषा प्रतिस्पर्धा नहीं कर सकती।
for
पीछे पुनरावर्ती द्वारा किया जाता है,for
पुनरावर्ती या लूप है?