31 दिसंबर 2015 को लगभग एक साल पहले, मुझे यह विचार आया था कि:
दरवाज़े कृपा एकत्र पात्रों से PPCG समुदाय और उन्हें एक साल के लिए सुरक्षित रखा।
एक 74 लोगों ने भाग लिया इसलिए हमारे पास खेलने के लिए 74 मुद्रण योग्य- ASCII वर्ण हैं!
2016 के टाइम कैप्सूल स्ट्रिंग के 74 अक्षर इस प्रकार हैं कि उन्हें प्रस्तुत किया गया था:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
यहां ASCII ऑर्डर में 2016 टाइम कैप्सूल स्ट्रिंग के 74 अक्षर दिए गए हैं (ध्यान दें कि स्पेस प्रमुख है):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
यह पूरी तरह से काम करने के लिए नहीं है, लेकिन यहां एक चुनौती हमें पसंद है।
चुनौती
यह निर्धारित करने के लिए कि कौन सी भाषा "सर्वश्रेष्ठ" है समय कैप्सूल स्ट्रिंग के साथ हमारे पास 6 (201 6 के लिए ) चुनौतियां होंगी जो कठिनाई में वृद्धि करती हैं जहां प्रत्येक में आपको 74 समय कैप्सूल वर्णों के सबसेट का उपयोग करना होगा।
6 अलग-अलग चुनौतियाँ होने से यह सुनिश्चित करने में मदद मिलती है कि अधिक भाषाएँ प्रतिस्पर्धा कर सकती हैं, लेकिन केवल सर्वश्रेष्ठ भाषाएँ ही उन सभी का उत्तर दे पाएंगी और उच्च स्कोर कर पाएंगी।
स्कोरिंग:
- प्रत्येक चुनौती का उपयोग 0 से 74 तक किया जाएगा जो इस बात पर निर्भर करता है कि कितने वर्ण उपयोग किए गए हैं।
- उच्च अंक बेहतर हैं।
- यदि आपकी भाषा एक चुनौती को पूरा नहीं कर सकती है, तो उस चुनौती के लिए आपका स्कोर 0 है।
- चुनौतियों का कोई भी खाली हिस्सा पूरा हो सकता है।
- आपका अंतिम स्कोर सभी 6 चुनौतियों से स्कोर का योग है।
- सर्वश्रेष्ठ अंतिम स्कोर संभव 6 × 74 या 444 है ।
चुनौतियाँ
1. भागो
अगर किसी भाषा का कोड पहली बार नहीं चल सकता है तो वह कुछ भी करने में सक्षम नहीं होगा।
सबसे लंबा पूर्ण कार्यक्रम संभव लिखें (केवल 74 समय कैप्सूल वर्णों का उपयोग करके, याद रखें) जो संकलन-समय या रनटाइम त्रुटियों के बिना चलाता / निष्पादित करता है।
इससे कोई फर्क नहीं पड़ता कि कार्यक्रम क्या करता है, इससे कोई फर्क नहीं पड़ता कि इसमें इनपुट / आउटपुट है या एक अनंत लूप में प्रवेश करता है, यह केवल मायने रखता है कि यह त्रुटियों के साथ चलता है। (चेतावनी ठीक है, क्योंकि खराब उपयोगकर्ता इनपुट के कारण त्रुटियां हैं।)
टिप्पणियों की अनुमति है, इसलिए यह उतना ही सरल हो सकता है
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
74 के स्कोर के लिए पायथन में।
(जवाब देने से डरो मत अगर यह एकमात्र ऐसी चुनौती है जिसे आपकी भाषा पूरी कर सकती है, लेकिन बहुत सारे वोटों की उम्मीद न करें।)
स्कोर = कार्यक्रम की लंबाई (अब कार्यक्रम बेहतर है)
2. मैं / ओ
ऐसी भाषा जिसमें इनपुट या आउटपुट का कोई रूप नहीं है, लगभग उतना ही बेकार है जितना कि कोई भी नहीं चल सकता है।
समावेशी (0x33) से (0x7D) के लिए एक मुद्रण योग्य ASCII चरित्र को देखते हुए , इससे पहले और बाद में मुद्रण योग्य ASCII चरित्र को आउटपुट करता है।!
}
आउटपुट की लंबाई दो स्ट्रिंग या सूची हो सकती है, या किसी स्थान या न्यूलाइन द्वारा अलग किए गए वर्ण हो सकते हैं।
उदाहरण के लिए यदि इनपुट है }
उत्पादन हो सकता है |~
या ["|", "~"]
या | ~
या |\n~
।
इसी तरह, "
के लिए आउटपुट है !
और AC
के लिए आउटपुट है B
।
स्कोर = 74 - कार्यक्रम की लंबाई (छोटा कार्यक्रम बेहतर है)
3. शाखामिलन
ट्यूरिंग पूर्णता के लिए सशर्त अक्सर एक आवश्यकता होती है, जो अक्सर एक भाषा के उपयोगी होने के लिए एक आवश्यकता होती है।
एक सकारात्मक पूर्णांक को देखते हुए, यदि यह दशमलव अंकों में समाप्त होता है, 16
तो 6
ए में बदल जाता है 7
और परिणाम को आउटपुट करता है; अन्यथा, इनपुट अपरिवर्तित आउटपुट। यदि आप पसंद करते हैं तो आप इनपुट / आउटपुट के लिए तार का उपयोग कर सकते हैं।
उदाहरण:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
स्कोर = 74 - कार्यक्रम की लंबाई (छोटा कार्यक्रम बेहतर है)
4. पाश्यता
एक भाषा जो लूप नहीं कर सकती है वह दोहराए जाने वाले कोड को थकाऊ करेगी ताकि आपको थोड़ी देर के लिए प्रोग्रामिंग ब्रेक लेने की आवश्यकता हो।
एक सकारात्मक पूर्णांक को देखते हुए, उस तरफ की लंबाई के एएससीआईआई-कला वर्ग का उत्पादन संकेंद्रित छोटे वर्गों के एक पैटर्न से भरा होता है जो कि किसी भी दो अलग मुद्रण योग्य ASCII वर्णों के बीच वैकल्पिक होता है । उन्हें अलग-अलग इनपुट्स के लिए एक ही तरह के दो कैरेक्टर नहीं होने चाहिए।
उदाहरण के लिए:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
स्कोर = 74 - कार्यक्रम की लंबाई (छोटा कार्यक्रम बेहतर है)
5. मैथ
एक भाषा जो संख्या और गणित के साथ अच्छी नहीं है, वह मानविकी की बड़ी कंपनियों के लिए भी हो सकती है।
कोई इनपुट न लें, लेकिन किसी भी क्रम में, 2016 के 72 पूर्णांक विभाजकों को सकारात्मक और नकारात्मक आउटपुट दें । आउटपुट को एक उचित तरीके से एक स्ट्रिंग या सूची के रूप में स्वरूपित किया जा सकता है।
उदाहरण:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
स्कोर = 74 - कार्यक्रम की लंबाई (छोटा कार्यक्रम बेहतर है)
6. गूढ़ार्थवाद
(नहीं, कि ।) हम पर PPCG हमारे जैसे गूढ़ सामान , और quines कि का एक अच्छा उदाहरण है।
हमेशा की तरह के नियमों के अनुसार, आप सबसे लंबी क्वीन लिख सकते हैं । एक क्वीन एक प्रोग्राम है जो कोई इनपुट नहीं लेता है और स्वयं आउटपुट करता है।
स्कोर = कार्यक्रम की लंबाई (अब कार्यक्रम बेहतर है)
विशिष्ट नियम
- आपके 6 चुनौतियों में से प्रत्येक में आपके कार्यक्रम को 74 बार कैप्सूल वर्णों का एक सबसेट होना चाहिए जो किसी भी तरह से आपको पसंद आया। यह एक खाली उपसमुच्चय या अनुचित उपसमुच्चय हो सकता है , इसलिए आपके प्रत्येक कार्यक्रम में 0 और उतने ही 74 वर्ण हो सकते हैं।
- इनपुट / आउटपुट / कोड के अंत में एक एकल अनुगामी न्यूलाइन कहीं भी ठीक है क्योंकि कुछ भाषाओं को इसकी आवश्यकता होती है या इसे आसानी से टाला नहीं जा सकता है।
- जब तक अन्यथा निर्दिष्ट नहीं किया जाता है, प्रत्येक चुनौती को हमारी चूक के अनुसार एक फ़ंक्शन या पूर्ण कार्यक्रम के रूप में पूरा किया जा सकता है ।
- सभी चुनौतियों को एक ही भाषा में पूरा करना होगा।
- पृथ्वी पर कहीं भी 2017 होने से पहले आपको एक भाषा (या किसी भाषा का संस्करण) का उपयोग करना चाहिए ।
- किसी का भी जवाब देने के लिए स्वागत है, चाहे आपने समय कैप्सूल में एक चरित्र जोड़ा या नहीं।
अपनी चुनौतियों में 2016 के समय के कैप्सूल पात्रों का उपयोग करने के लिए स्वतंत्र महसूस करें।
6×74 or 444
रूप से यह संभव नहीं है, क्योंकि इसका मतलब होगा कि खाली कार्यक्रम, जो किसी तरह अलग व्यवहार करते हैं। इसलिए, 442 वास्तविक न्यूनतम है, इसका मतलब है कि 3 इनपुट कार्यक्रमों में से दो में एक चार है