स्टैक्स , 11 बाइट्स (4 का स्कोर)
'''cc'~~'dd
भागो और डिबग ऑनलाइन!
यह इस चुनौती का जवाब है कि पहले (कालानुक्रमिक रूप से) इस चुनौती का जवाब एक स्कोर से अधिक या उसके बराबर 4. शायद स्कोर अधिक हो सकता है।
Stax में, एक स्ट्रिंग शाब्दिक जो एक एकल वर्ण से बना होता है '
, के साथ लिखा जाता है , इसलिए '', 'c, 'd, '~
सभी स्ट्रिंग शाब्दिक होते हैं। के लिए इसी आदेश c
d
का ~
मतलब है और मुख्य स्टैक के शीर्ष को डुप्लिकेट करते हैं, मुख्य स्टैक के शीर्ष को पॉप करते हैं, और मुख्य स्टैक के शीर्ष को पॉप करते हैं और क्रमशः इनपुट स्टैक पर धक्का देते हैं। इस चुनौती के लिए, इनपुट स्टैक आउटपुट को प्रभावित नहीं करता है और महत्वपूर्ण नहीं है, इसलिए हम कह सकते हैं d
और ~
समान हैं।
व्याख्या
कोड को कई भागों में विभाजित करना और उन्हें अलग से विचार करना सबसे अच्छा है।
जब इसके साथ छेड़छाड़ नहीं की जाती है, तो मुख्य स्टैक के लिए '''cc
एक शाब्दिक '
और एक शाब्दिक धक्का देता है c
, और शीर्ष को डुप्लिकेट करता है, इसलिए स्टैक (नीचे से) होगा c,c,'
।
जब छेड़छाड़ नहीं की जाती है, तो '~~
शाब्दिक धक्का देता है ~
और फिर इसे पॉप (और इनपुट स्टैक को धक्का देता है), जो मूल रूप से मुख्य स्टैक के लिए एक नो-ऑप है।
जब छेड़छाड़ नहीं की जाती है, तो 'dd
शाब्दिक धक्का देता है d
और फिर इसे पॉप करता है, मुख्य स्टैक के लिए एक और नो-ऑप।
कार्यक्रम के अंत में, चूंकि कोई स्पष्ट आउटपुट नहीं किया गया है, मुख्य स्टैक के शीर्ष को स्पष्ट रूप से मुद्रित किया जाएगा।
यदि प्रोग्राम के रूप में चल रहा है, अंतिम स्टैक अभी भी है c,c,'
और आउटपुट होगा c
।
यदि पहला भाग बन जाता है ''cc
, तो हमारे पास एक शाब्दिक '
और दो प्रतिलिपि निर्देश हैं, अंतिम स्टैक होगा ',','
। यह देखते हुए कि दो अन्य भाग नो-ऑप हैं, परिणाम होगा '
।
यदि पहला भाग बन जाता है '''c
, तो परिणाम मूल रूप से अपरिचित के साथ समान होता है, लेकिन c
नकल नहीं होती है। तो ढेर होगा c,'
। दो नो-ऑप के बाद स्टैक का शीर्ष है c
।
इसलिए हम पहले भाग में विकिरण का पता लगा सकते हैं।
दूसरा भाग और तीसरा भाग ठीक उसी तरह से काम करते हैं। मैं एक उदाहरण के रूप में तीसरा भाग लूंगा।
यदि तीसरे भाग के साथ छेड़छाड़ की जाती है, तो पहले दो भागों को रखा जाता है और तीसरे भाग को चलाने से पहले स्टैक होता है c,c,'
यदि तीसरा भाग बन जाता है 'd
, तो एक शाब्दिक d
मुख्य ढेर के शीर्ष पर धकेल दिया जाता है और आगे कुछ भी नहीं किया जाता है। मुख्य स्टैक का शीर्ष अब d
आउटपुट है।
यदि तीसरा भाग बन जाता है dd
, तो दो तत्व मुख्य स्टैक से पॉपप होते हैं और अब स्टैक का शीर्ष '
आउटपुट है।
इसलिए हम तीसरे भाग में विकिरण का पता लगा सकते हैं। उसी कारण से हम दूसरे भाग में विकिरण का पता लगा सकते हैं।