जब मैं निम्नलिखित दिलचस्प पुनरावर्ती पैटर्न में आया तो मैं अनंत प्रतिरोधक नेटवर्क (लंबी कहानी) के साथ खिलवाड़ कर रहा था:
|-||
|---
इस पैटर्न का प्रत्येक उदाहरण लंबा होने के साथ दोगुना चौड़ा है। पैटर्न के एक स्तर से अगले तक जाने के लिए, आप इस आयत को दो उप-खंडों में विभाजित करते हैं (जिनमें से प्रत्येक NxN वर्ग है):
AB =
|-||
|---
so A =
|-
|-
and B =
||
--
इन हिस्सों को फिर से निम्न पैटर्न के अनुसार दोहराया और पुनर्व्यवस्थित किया जाता है:
ABAA
ABBB
giving
|-|||-|-
|---|-|-
|-||||||
|-------
चुनौती
एक प्रोग्राम / फ़ंक्शन लिखें, जो एक नंबर दिया गया है N
, N
इस पुनरावर्ती डिजाइन के वें पुनरावृत्ति को आउटपुट करता है । यह गोल्फ है।
I / O प्रारूप अपेक्षाकृत उदार है: आप एक स्ट्रिंग, तार की एक सूची, वर्णों की एक 2 डी सरणी, आदि की वापसी कर सकते हैं। आप 0 या 1 अनुक्रमण का भी उपयोग कर सकते हैं।
उदाहरण
पैटर्न के पहले कई पुनरावृत्तियों निम्नानुसार हैं:
N = 0
|-
N = 1
|-||
|---
N = 2
|-|||-|-
|---|-|-
|-||||||
|-------
N = 3
|-|||-|-|-|||-||
|---|-|-|---|---
|-|||||||-|||-||
|-------|---|---
|-|||-|-|-|-|-|-
|---|-|-|-|-|-|-
|-||||||||||||||
|---------------
N = 4
|-|||-|-|-|||-|||-|||-|-|-|||-|-
|---|-|-|---|---|---|-|-|---|-|-
|-|||||||-|||-|||-|||||||-||||||
|-------|---|---|-------|-------
|-|||-|-|-|-|-|-|-|||-|-|-|||-|-
|---|-|-|-|-|-|-|---|-|-|---|-|-
|-|||||||||||||||-|||||||-||||||
|---------------|-------|-------
|-|||-|-|-|||-|||-|||-|||-|||-||
|---|-|-|---|---|---|---|---|---
|-|||||||-|||-|||-|||-|||-|||-||
|-------|---|---|---|---|---|---
|-|||-|-|-|-|-|-|-|-|-|-|-|-|-|-
|---|-|-|-|-|-|-|-|-|-|-|-|-|-|-
|-||||||||||||||||||||||||||||||
|-------------------------------
मुझे आश्चर्य है कि अगर इस संरचना की गणना करने के लिए कुछ लघु बीजीय तरीका है।
f(n,x,y)
जो सीधे गणना कर सकता है कि किसी दिए गए समन्वय में होना चाहिए -
या |
। इसमें मॉडुलो ऑपरेशन या बिटवाइज़ ऑपरेशन शामिल हो सकते हैं। मैंने अभी तक जो तकनीकें देखी हैं उनमें सभी कटिंग / ज्वाइनिंग शामिल हैं जैसा कि कल्पना में दिखाया गया है।
f(x,y)
यह भी काम करता है, क्योंकि अगर x,y
वैध है तो परिणाम पर निर्भर नहीं करता हैn
|-
?