एडम 7 पीएसजी जैसे रेखापुंज छवियों के लिए एक इंटरलाकिंग एल्गोरिथ्म है। इसे "एडम 7" एल्गोरिथ्म कहा जाता है क्योंकि यह एडम एम। कॉस्टेलो द्वारा आविष्कार किया गया था, और यह 7 बार एक निश्चित पैटर्न का पालन करके उत्पन्न होता है। एडम 7 एल्गोरिथ्म के बारे में ठंडी चीजों में से एक है जो कोड गोल्फ के लिए वास्तव में मजेदार बनाता है, यह है कि पैटर्न को मनमाने ढंग से कई बार दोहराया जा सकता है, जब तक कि यह विषम न हो। जब 1996 में जब PNG
मानक विकसित किया गया था, तो केवल 7 पुनरावृत्तियों को पर्याप्त रूप में देखा गया था, क्योंकि 9 पुनरावृत्तियों बहुत जटिल थे, और 5 पुनरावृत्तियों उतना कुशल नहीं था।
यहाँ टाइल का पहला चलना है:
a
बहुत साधारण। यह एक "एडम 1" टाइल है। यहां बताया गया है कि हमें अगली यात्रा "एडम 3" टाइल से कैसे मिलती है।
चूंकि हमारी आखिरी टाइल थी 1x1
, हम ऊँचाई और चौड़ाई को दोगुना करते हैं, और अगला एक होगा 2x2
। सबसे पहले, हम ऊपरी बाएँ कोने में एक 'a' से शुरू करते हैं।
a-
--
चरण 2, इस पैटर्न को दाईं ओर कॉपी करें, और उस अक्षर को बढ़ाएं जिस पर हम एक हैं।
ab
--
चरण 3, चरण 2 के समान, लेकिन सही के बजाय नीचे कॉपी करें।
ab
cc
बूम। "एडम 3" टाइल। चलो "एडम 5" भी करते हैं, इसलिए आप वास्तव में देख सकते हैं कि एल्गोरिथ्म कैसे काम करता है। यह टाइल, फिर से, दो बार बड़ी होगी, इसलिए 4x4
। फिर, हम a
ऊपरी बाएँ कोने में एक के साथ शुरू करते हैं :
a---
----
----
----
इस पैटर्न को दोगुना करें, पत्र बढ़ाएं, और इसे दाईं ओर ले जाएं:
a-b-
----
----
----
फिर, इस बार नीचे।
a-b-
----
c-c-
----
फिर, इस बार दाईं ओर।
adbd
----
cdcd
----
फिर, इस बार नीचे।
adbd
eeee
cdcd
eeee
यह "एडम 5" टाइल है। यहाँ Adam7 टाइल का ASCII प्रतिनिधित्व है:
afdfbfdf
gggggggg
efefefef
gggggggg
cfdfcfdf
gggggggg
efefefef
gggggggg
और जब हम इस पर होते हैं, तो यहां एडम 7 टाइल के प्रत्येक चरण का एक मजेदार एनीमेशन है (हालांकि यह कई टाइलों को एक साथ करता है):
चुनौती
एक सकारात्मक विषम संख्या एन को देखते हुए , "एडम एन " टाइल का उत्पादन करें । आप IO की किसी भी डिफ़ॉल्ट विधि का उपयोग कर सकते हैं । चूंकि हम संख्याओं के बदले में वर्णमाला का उपयोग कर रहे हैं, इसलिए आपको केवल 25 तक इनपुट को संभालने की आवश्यकता है। जब तक आप निर्दिष्ट करते हैं, तब तक आप लोअर-केस या अपर-केस वर्णों को आउटपुट करना चुन सकते हैं और यह सुसंगत है।
नमूना IO
1:
a
3:
ab
cc
5:
adbd
eeee
cdcd
eeee
7:
afdfbfdf
gggggggg
efefefef
gggggggg
cfdfcfdf
gggggggg
efefefef
gggggggg
9:
ahfhdhfhbhfhdhfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
ehfhehfhehfhehfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
chfhdhfhchfhdhfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
ehfhehfhehfhehfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
हमेशा की तरह, यह कोड-गोल्फ है, इसलिए मानक कमियां लागू होती हैं, और बाइट्स जीत में सबसे कम जवाब मिलता है!
c
टेस्टकेस में कहाँ है9
?