कोड गोल्फ में हमेशा कुछ ऐसे उत्तर शामिल होते हैं जो नियमों को कम या ज्यादा करके उन बाधाओं को तोड़ते हैं, जिन्हें चुनौती देने वाले ने लिया था या नियमों के बारे में सोचा नहीं था। इन दिलचस्प खामियों में से एक बेहतर परिणाम प्राप्त करने के लिए चुनौती से अधिक उत्पादन करने की संभावना है ।
इसे चरम सीमा पर ले जाते हुए, हम एक सार्वभौमिक कोड गोल्फ सॉल्वर लिख सकते हैं जो वांछित आउटपुट को प्रिंट करता है - अगर आपको परवाह नहीं है कि यह उम्र ले सकता है और इसके पहले और बाद में बहुत सारे अन्य सामानों को आउटपुट करता है।
हम सभी को आउटपुट की जरूरत है एक ऐसा क्रम है जो हर संभव बाद में होने की गारंटी है। इस कोड गोल्फ के लिए, यह एरेनफ्रूच-म्य्सेलस्की अनुक्रम होगा :
अनुक्रम तीन बिट्स 010 से शुरू होता है; प्रत्येक क्रमिक अंक उस अनुक्रम के सबसे लंबे प्रत्यय को खोजने से बनता है, जो पहले अनुक्रम में भी दिखाई देता है, और उस प्रत्यय के सबसे हाल के स्वरूप के बाद बिट को पूरक करता है।
बिट्स की प्रत्येक परिमितता क्रमिक रूप से, क्रम के भीतर असीम रूप से होती है
अनुक्रम के पहले कुछ अंक हैं:
अनुक्रम के 8 बिट्स को बाइट के साथ जोड़कर, हम ASCII आउटपुट प्राप्त करेंगे जिसे हम स्क्रीन पर या किसी फ़ाइल में आउटपुट कर सकते हैं और जिसमें हर संभव परिमित आउटपुट शामिल है । कार्यक्रम पीआई के कुछ हिस्सों का उत्पादन करेगा, "कभी भी तुम्हें देने वाला नहीं है" के बोल , कुछ अच्छा ASCII कला, इसका अपना स्रोत कोड, और बाकी सब कुछ आप इसे आउटपुट के लिए चाहते हैं।
शुद्धता के परीक्षण के लिए, यहाँ अनुक्रम के पहले 256 बाइट्स के लिए हैश हैं:
MD5: 5dc589a06e5ca0cd9280a364a456d7a4
SHA-1: 657722ceef206ad22881ceba370d32c0960e267f
हेक्साडेसिमल संकेतन में अनुक्रम के पहले 8 बाइट्स हैं:
4D 71 0F 65 27 46 0B 7C
नियम:
आपके प्रोग्राम को बाइट / ASCII कैरेक्टर के 8 बिट्स को मिलाकर Ehrenfeucht-Mycielski अनुक्रम (और कुछ नहीं) का उत्पादन करना चाहिए।
सबसे छोटा कार्यक्रम (वर्ण गणना) जीतता है। अपने वर्ण गणना से 512 को घटाएं यदि आप उत्पन्न बाइट में रैखिक समय में अनुक्रम उत्पन्न करने का प्रबंधन करते हैं ।