कार्यक्रम ए :
"iQ ²¯24
G²õ@i'#+Xd"iQ ²¯24
G²õ@i'#+Xd
प्रोग्राम बी 8kB से अधिक लंबा है, इतना लंबा है कि लिंक टूट जाता है, इसलिए मैं पूरी बात पेस्ट नहीं करूंगा। यहाँ एक नमूना है:
#þ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#ÿ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#Ā"iQ ²¯24
G²õ@i'#+Xd"iQ ²
मुझे NULकाम करने के लिए एक बाइट प्राप्त करने का तरीका नहीं मिला , यही वजह है कि प्रोग्राम बी में केवल 255 अद्वितीय अक्षर हैं। प्रोग्राम बी में अनिवार्य रूप से एक एकल कार्यक्रम की 255 प्रतियां शामिल हैं, जहां हर बार एक अप्रासंगिक बाइट को बदल दिया जाता है, और पहले 254 निष्पादन को अनदेखा किया जाता है।
स्पष्टीकरण के लिए, मैं ए के इस सरलीकृत संस्करण के साथ शुरू करूंगा ताकि परिणामस्वरूप बी चर्चा करना आसान हो।
"iQ ²¯23
3õ@i'#+Xd"iQ ²¯23
3õ@i'#+Xd
यह कार्यक्रम मूल पेलोड-सक्षम जाप क्वीन पर आधारित है । प्रारंभ में स्ट्रिंग में बाकी प्रोग्राम का डुप्लिकेट होता है, iQ ²एक उद्धरण सम्मिलित करता है और पूरे प्रोग्राम का एक स्ट्रिंग प्रतिनिधित्व बनाने के लिए डुप्लिकेट करता है, और फिर ¯23खुद को और उसके बाद सब कुछ बंद कर देता है। परिणामी स्ट्रिंग एक प्रोग्राम है जो प्रोग्राम ए को आउटपुट करता है :
"iQ ²¯23
3õ@i'#+Xd"iQ ²
मैं इस स्ट्रिंग का उल्लेख करूंगा U।
ए की अंतिम पंक्ति Uहर बार एक छोटे से बदलाव के साथ कई बार एक गुच्छा को दोहराती है। विशेष रूप से, Xरेंज में प्रत्येक संख्या के लिए [1...3]यह आउटपुट करता है कि चारकोड वाला चरित्र "#c" + Uकहां cहै X। जाप का डिफ़ॉल्ट व्यवहार उन तारों को बिना उद्धरण चिह्नों के साथ आउटपुट करना और अल्पविराम द्वारा अलग करना है, इसलिए यह हमारे सरलीकृत ए का आउटपुट है (ध्यान दें कि प्रत्येक के बीच एक अप्राप्य बाइट है #और "iQ:
#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²
हम इसे सरलीकृत बी कहेंगे ।
सरलीकृत बी में एक सरल संरचना होती है, जिसके बीच बारी-बारी से #cऔर U। सौभाग्य से इस उत्तर के लिए, प्रत्येक #cऔर Uके रूप में एक अल्पविराम के द्वारा अलग व्यवहार किया जाता है, और इस स्थिति में उस के व्यवहार सब कुछ है, सिवाय इसके आखिरी Uउत्पादन पर कोई प्रभाव नहीं है। सरलीकृत बी का एकमात्र भाग जो उत्पादन को प्रभावित करता है वह है:
"iQ ²¯23
3õ@i'#+Xd"iQ ²
यह समान है Uकि हम पहले से ही आउटपुट ए को सरलता से जानते हैं।
सरलीकृत ए और प्रोग्राम ए के बीच एकमात्र अंतर यह है कि सीमा [1...3]के लिए प्रतियां पैदा करने के बजाय वास्तविक कार्यक्रम रेंज के लिए प्रतियां उत्पन्न करता है [1...256]। जिसके परिणाम में से #cप्रत्येक के 256 संस्करणों में एक अलग चरित्र है, हालांकि अंतिम संस्करण "a" एक बहु-बाइट चरित्र है, इसलिए यह किसी भी अद्वितीय बाइट्स को नहीं जोड़ता है, लेकिन अंतिम Uको छोड़कर सब कुछ अभी भी अनदेखा है।