यह कार्यक्रम इनपुट के रूप में [छात्र के उत्तरों, सही उत्तरों] की एक जोड़ी लेता है और लापता उत्तर को इंगित करने के लिए रिक्त स्थान का उपयोग करता है।
यह कार्यक्रम कुछ विचित्र आंतरिक इनपुट स्वरूपों का उपयोग करता है जो कि चल रहा है, इस पर नज़र रखने के लिए, इसलिए हम इसे एक बार में एक कदम उठाएंगे।
Z
यह इनपुट को स्थानांतरित करता है, इसलिए हम प्रत्येक प्रश्न के लिए 25 तत्वों की एक सूची के साथ समाप्त करेंगे; प्रत्येक तत्व फॉर्म का है [छात्र का उत्तर, सही उत्तर]। हम इस फ़ॉर्म के एक तत्व को एक बड़े अक्षर के साथ इंगित करेंगे; Aप्रश्न 1 के लिए, Bप्रश्न 2 के लिए, और इसी तरह। तो वर्तमान में जवाब के रूप में संग्रहीत किया जा रहा है
ABCDEFGHIJKLMNOPQRSTUVWXY
m0
यह एक "अधिक से अधिक पैलिंड्रोम" ऑपरेशन है; हम वर्तमान मूल्य के विपरीत मूल्य को ही जोड़ते हैं, इससे उपज होती है:
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ṁ135
ṁ(मोल्ड) ऑपरेटर चीजों की एक संख्या है, लेकिन इस संदर्भ में, यह प्रभावी रूप से बार-बार खुद को वर्तमान मूल्य जोड़कर उत्पादन अनंत सूची के पहले 135 तत्वों लेता है। यह हमें निम्नलिखित देता है (जो मैंने सुविधा के लिए 50 तत्वों के समूहों में तोड़ दिया है; यह आंतरिक रूप से 135 जोड़े की सूची है):
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
µ;
µलापता ऑपरेंड के लिए नए डिफ़ॉल्ट के रूप में वर्तमान मान सेट करता है। हम फिर तुरंत एक बिल्डिन देखते हैं जो एक ऑपरेंड को याद कर रहा है; ;एपेंड करता है, लेकिन हमने निर्दिष्ट नहीं किया है कि किसके साथ क्या करना है। नतीजतन, वर्तमान मूल्य को अंतिम µ(जो कि वर्तमान मूल्य भी है) के रूप में मूल्य में जोड़ा जाता है , जिससे हमें निम्नलिखित 270-तत्व वर्तमान मूल्य मिलता है:
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQP
t€⁶
याद रखें कि ऊपर दिए गए सभी बड़े अक्षर [छात्र के उत्तर, सही उत्तर] के जोड़े को दर्शाते हैं। t€⁶आपरेशन प्रत्येक (पर चल रही €हटाए गए () जोड़ी, और t) रिक्त स्थान ( ⁶) जोड़ी के दोनों ओर से (यानी किसी भी स्थान है कि जोड़ी में दिखाई देता है)। इसलिए हमारे पास अभी भी 270 प्रश्नों की एक ही सूची कई रिपीट के साथ है, लेकिन वे फॉर्म [सही उत्तर] (छात्र ने उत्तर नहीं दिया) या [छात्र का उत्तर, सही उत्तर] (छात्र ने उत्तर दिया)।
E€’
E€’आपरेशन भी एक (पर चल रही है €के उपयोग के कारण) तत्व, और, E, 1 के साथ तत्व बदल दे सभी तत्वों के बराबर हैं (यानी छात्र का उत्तर देने या सवाल का अधिकार मिल गया नहीं था), या 0 सभी नहीं तो तत्व बराबर हैं (अर्थात छात्र ने उत्तर दिया लेकिन प्रश्न गलत मिला)। यहां के उपयोग से ’नंबरिंग बदल जाती है, जिसका अर्थ है कि अब हम क्रमशः -1 या 0 का उपयोग करते हैं। मैं इस नए प्रकार के तत्व के लिए लोअरकेस अक्षरों का उपयोग करूंगा, जो उत्तर के लिए -1 का उपयोग करता है जिसे दंडित किया जाएगा यदि यह दंड-योग्य प्रश्न पर था, या 0 लापता या सही उत्तर के लिए:
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqpabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqp
;E€
हमने दोनों को E€और ;पहले देखा है ; हम वर्तमान मूल्य के लिए कुछ जोड़ रहे हैं, और हम 1 के प्रारूप का उपयोग कर रहे हैं यदि सभी तत्व समान हैं, या 0 यदि कुछ अलग हैं ( ’इस बार नहीं!)। यहां एक लापता ऑपरेंड है, इसलिए हम अंतिम µ(यानी चरण 3 के आउटपुट) के रूप में मूल्य का उपयोग करते हैं । चरण 3 में वापस, हमने तत्वों से रिक्त स्थान नहीं हटाया था, इसलिए हमारे पास एक सही उत्तर के लिए 1 होगा, या 0 गलत या लापता उत्तर के लिए (क्योंकि एक स्थान सही उत्तर से मेल नहीं खाएगा)। अब से, मैं इस 1 = सही, 0 = गलत / लापता प्रारूप के लिए बड़े अक्षरों का उपयोग करूंगा, और 0 = सही / गायब, -1 = गलत के लिए लोअरकेस अक्षरों का उपयोग करना जारी रखूंगा। परिणामी मूल्य में 405 तत्व हैं, और इस तरह दिखता है:
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqpabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqpABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQP
ṫ⁹
यहां वह अद्भुत संयोग आता है जिसका मैंने पहले उल्लेख किया था। इस बिट कोड के बारे में बात करने से पहले, हम उस जगह का जायजा लेना चाहते हैं, जहाँ हम पहुँच चुके हैं।
प्रत्येक पूंजी पत्र एक सही उत्तर के लिए +1 का प्रतिनिधित्व करता है; पहले 15 प्रश्न (के Aमाध्यम से O) प्रत्येक स्ट्रिंग में 5 बार दिखाई देते हैं, और अंतिम 10 प्रश्न ( प्रत्येक के Pमाध्यम से Y) 6 बार दिखाई देते हैं। वह बिट वास्तव में जादुई नहीं है; मैंने इसे इस तरह से डिज़ाइन किया था जब मैंने प्रोग्राम में 135 नंबर पहले चुना था (जो 5 × 15 + 6 × 10 है), और यहाँ भाग्य का एकमात्र स्ट्रोक यह है कि 5 एक विषम संख्या है (इसलिए यह अंतिम 10 है प्रश्न जो पहले 10 के बजाय अतिरिक्त समय को समाप्त करते हैं)। 15 पत्र तुरंत इस पूर्ववर्ती शामिल pके माध्यम से t(-1 जुर्माना प्रश्न) एक बार, और uके माध्यम से y(-2 दंड प्रश्न) दो बार। यह भी बहुत संयोग नहीं है; क्योंकि हमने इस्तेमाल कियाm0पहले, प्रश्नों की अतिरिक्त प्रतियां क्रम में हैंPQRSTUVWXYYXWVUTSRQP, और बाद के प्रश्न स्वाभाविक रूप से उस स्ट्रिंग के मध्य के पास होंगे (इसलिए "अतिरिक्त" प्रश्नों के अंतिम 15 को किनारों के पास वाले लोगों को कम दोहराएंगे; और निश्चित रूप से, यह "अतिरिक्त" नहीं है; प्रश्न अंतिम आते हैं)।
क्योंकि प्रत्येक लोअरकेस अक्षर गलत, गैर-लापता उत्तर के लिए स्कोर से 1 घटाता है, और प्रत्येक अपरकेस पत्र एक सही उत्तर के लिए स्कोर में 1 जोड़ता है, इसलिए हमें प्राप्त करने के लिए अंतिम 135 + 15 = 150 तत्वों को लेने की आवश्यकता है प्रत्येक प्रकार का तत्व कई बार सही संख्या में होता है। एक सूची के अंत में एक विकल्प प्राप्त करने के लिए जेली की कमान है ṫ; हालाँकि, यह आपके इच्छित तत्वों की संख्या को निर्दिष्ट नहीं करता है, बल्कि आपके द्वारा वांछित पहले तत्व का सूचकांक है। हमारे पास इस बिंदु पर 405 तत्व हैं, और 150 चाहते हैं, इसलिए हमें सूचकांक (405 - 150 + 1), या 256 पर शुरू करने की आवश्यकता है। एक अद्भुत संयोग में, 256 में अलग-अलग ऑक्टेट की संख्या होती है जो मौजूद हैं, और इस तरह से है जेली में एक छोटा प्रतिनिधित्व (⁹)। ऐसा करने के लिए मैं बहुत कम कर सकता था; चरण 4 ने राउंड नंबर को हिट करने के लिए सूची की शुरुआत में एक और 135 तत्वों को जोड़ा, लेकिन तथ्य यह है कि यह 135 तत्व थे जिन्हें मुझे जोड़ना था (एक मान जो कार्यक्रम में उस समय आसानी से उपलब्ध था) वास्तव में सुविधाजनक था, मूल रूप से इस स्थिति में कोई अन्य संख्या पूरी तरह से अप्रभावी होने के कारण।
यहां बताया गया है कि आंतरिक मूल्य अब कैसा दिखता है:
uvwxyyxwvutsrqpABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
ONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
ONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
S
अंत में, अब हमें प्रश्नों से प्राप्तांक में संशोधन की सूची मिल गई है, हमें बस इतना करना है कि हम उनका उपयोग Sकर रहे हैं, और हम कर रहे हैं।