Aşağıdaki ilginç özyinelemeli desen ile karşılaştığımda sonsuz direnç ağları (uzun hikaye) ile uğraşıyordum:
|-||
|---
Bu desenin her örneği, uzun olduğundan iki kat daha geniştir. Desenin bir seviyesinden diğerine geçmek için bu dikdörtgeni iki alt bloğa ayırırsınız (her biri NxN karesidir):
AB =
|-||
|---
so A =
|-
|-
and B =
||
--
Bu yarımlar daha sonra aşağıdaki desene göre çoğaltılır ve yeniden düzenlenir:
ABAA
ABBB
giving
|-|||-|-
|---|-|-
|-||||||
|-------
Meydan okuma
Bir sayı verilen , bu özyinelemeli tasarımın yinelenen N
çıktılar bir program / işlev yazın N
. Bu golf.
G / Ç formatı nispeten esnek: tek bir dize, bir dize listesi, bir 2D karakter dizisi, vb. Döndürebilirsiniz. Ayrıca, 0 veya 1 dizinlemeyi de kullanabilirsiniz.
Örnekler
Desenin ilk birkaç yinelemesi aşağıdaki gibidir:
N = 0
|-
N = 1
|-||
|---
N = 2
|-|||-|-
|---|-|-
|-||||||
|-------
N = 3
|-|||-|-|-|||-||
|---|-|-|---|---
|-|||||||-|||-||
|-------|---|---
|-|||-|-|-|-|-|-
|---|-|-|-|-|-|-
|-||||||||||||||
|---------------
N = 4
|-|||-|-|-|||-|||-|||-|-|-|||-|-
|---|-|-|---|---|---|-|-|---|-|-
|-|||||||-|||-|||-|||||||-||||||
|-------|---|---|-------|-------
|-|||-|-|-|-|-|-|-|||-|-|-|||-|-
|---|-|-|-|-|-|-|---|-|-|---|-|-
|-|||||||||||||||-|||||||-||||||
|---------------|-------|-------
|-|||-|-|-|||-|||-|||-|||-|||-||
|---|-|-|---|---|---|---|---|---
|-|||||||-|||-|||-|||-|||-|||-||
|-------|---|---|---|---|---|---
|-|||-|-|-|-|-|-|-|-|-|-|-|-|-|-
|---|-|-|-|-|-|-|-|-|-|-|-|-|-|-
|-||||||||||||||||||||||||||||||
|-------------------------------
Bu yapıyı hesaplamak için kısa bir cebirsel yolu olup olmadığını merak ediyorum.
f(n,x,y)
belirli bir koordinatın -
veya içermesi gerektiğini doğrudan hesaplayabilen bazı "basit" matematik formülleri var |
. Modulo işlemleri veya bitsel işlemleri içerebilir. Şimdiye kadar gördüğüm tekniklerin tümü, teknik özelliklerde gösterildiği gibi, kesme / birleştirme dizilerini içerir.
f(x,y)
ayrıca çalışır, çünkü eğer x,y
geçerliyse sonuç bağlı değildirn
|-
mu?