Saya bermain-main dengan jaringan resistor tanpa batas (cerita panjang) ketika saya menemukan pola rekursif yang menarik berikut:
|-||
|---
Setiap instance dari pola ini dua kali lebih lebar dari tingginya. Untuk beralih dari satu level pola ke level berikutnya, Anda memecah persegi panjang ini menjadi dua sub-blok (masing-masing merupakan kotak NxN):
AB =
|-||
|---
so A =
|-
|-
and B =
||
--
Bagian ini kemudian digandakan dan disusun kembali sesuai dengan pola berikut:
ABAA
ABBB
giving
|-|||-|-
|---|-|-
|-||||||
|-------
Tantangan
Tulis program / fungsi yang, diberi nomor N
, menampilkan N
iterasi desain rekursif ini. Ini golf.
Format I / O relatif ringan: Anda dapat mengembalikan string tunggal, daftar string, array karakter 2D, dll. Ruang spasi trailing sewenang-wenang diizinkan. Anda juga dapat menggunakan pengindeksan 0 atau 1.
Contohnya
Beberapa iterasi pertama dari pola adalah sebagai berikut:
N = 0
|-
N = 1
|-||
|---
N = 2
|-|||-|-
|---|-|-
|-||||||
|-------
N = 3
|-|||-|-|-|||-||
|---|-|-|---|---
|-|||||||-|||-||
|-------|---|---
|-|||-|-|-|-|-|-
|---|-|-|-|-|-|-
|-||||||||||||||
|---------------
N = 4
|-|||-|-|-|||-|||-|||-|-|-|||-|-
|---|-|-|---|---|---|-|-|---|-|-
|-|||||||-|||-|||-|||||||-||||||
|-------|---|---|-------|-------
|-|||-|-|-|-|-|-|-|||-|-|-|||-|-
|---|-|-|-|-|-|-|---|-|-|---|-|-
|-|||||||||||||||-|||||||-||||||
|---------------|-------|-------
|-|||-|-|-|||-|||-|||-|||-|||-||
|---|-|-|---|---|---|---|---|---
|-|||||||-|||-|||-|||-|||-|||-||
|-------|---|---|---|---|---|---
|-|||-|-|-|-|-|-|-|-|-|-|-|-|-|-
|---|-|-|-|-|-|-|-|-|-|-|-|-|-|-
|-||||||||||||||||||||||||||||||
|-------------------------------
Saya ingin tahu apakah ada beberapa cara aljabar singkat untuk menghitung struktur ini.
f(n,x,y)
yang dapat secara langsung menghitung apakah koordinat yang diberikan harus berisi -
atau |
. Ini mungkin melibatkan operasi modulo atau operasi bitwise. Teknik yang saya lihat sejauh ini semuanya melibatkan cutting / join array seperti yang ditunjukkan dalam spesifikasi.
f(x,y)
juga berfungsi, karena jika x,y
valid maka hasilnya tidak bergantung padan
|-
?