Wprowadzenie
W tym wyzwaniu macierz 2 × 2 jest indeksowana w następujący sposób:
0 1
2 3
Definiujemy rodzinę wzorów podobnych do fraktali F(L)
, gdzie L
znajduje się n
lista tych wskaźników i F(L)
ma ona rozmiar .2n-1 × 2n-1
- Jeśli
L == []
, toF(L)
jest wzór 1 × 1#
. Jeśli
L != []
, toF(L)
jest zbudowany w następujący sposób. NiechP
będzie wzorem uzyskanymL
po usunięciu pierwszego elementu. Weź cztery siatki wielkości wypełnione kropkami i zastąp siatkę indeksowaną wzorem . Następnie sklej siatki razem za pomocą jednej warstwy haszów między nimi. Oto schematy czterech przypadków:2n-1-1 × 2n-1-1
.
L[0]
P
#
L[0]==0 L[0]==1 L[0]==2 L[0]==3 #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...# ...#... ...#... ####### ####### ####### ####### ...#... ...#... #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...#
Przykład
Rozważ dane wejściowe L = [2,0]
. Zaczynamy od siatki 1 × 1 #
i przesuwamy L
od prawej. Najbardziej wysunięty na prawo element to 0
, więc bierzemy cztery kopie siatki 1 × 1 .
, zastępujemy pierwszą #
i sklejamy je haszami. Daje to siatkę 3 × 3
##.
###
.#.
Kolejnym elementem jest 2
, więc bierzemy cztery kopie siatki 3 × 3 .
s i zastępujemy trzecią powyższą siatką. Cztery siatki są
... ... ##. ...
... ... ### ...
... ... .#. ...
i sklejenie ich razem z #
wynikami s w siatce 7 × 7
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
To jest nasz końcowy wynik.
Wejście
Twój wkład jest listą L
indeksów 0, 1, 2, 3
. Możesz wziąć to jako listę liczb całkowitych lub ciąg cyfr. Pamiętaj, że może być pusty i może zawierać duplikaty. Długość L
wynosi co najwyżej 5.
Wynik
Twój wynik to wzorzec F(L)
jako ciąg rozdzielany znakiem nowej linii.
Zasady i punktacja
Możesz napisać pełny program lub funkcję. wygrywa najniższa liczba bajtów, a standardowe luki są niedozwolone.
Przypadki testowe
[]
#
[0]
##.
###
.#.
[3]
.#.
###
.##
[2,0]
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
[1,1]
...#.##
...####
...#.#.
#######
...#...
...#...
...#...
[1,2,0]
.......#...#...
.......#...#...
.......#...#...
.......########
.......###.#...
.......#####...
.......#.#.#...
###############
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
[3,3,1]
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
###############
.......#...#...
.......#...#...
.......#...#...
.......########
.......#...#.##
.......#...####
.......#...#.#.
[0,1,2,3]
.......#...#...#...............
.......#...#...#...............
.......#...#...#...............
.......#########...............
.......#.#.#...#...............
.......#####...#...............
.......#.###...#...............
################...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
###############################
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
[0,0,1,2,3]
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#########...............#...............................
.......#.#.#...#...............#...............................
.......#####...#...............#...............................
.......#.###...#...............#...............................
################...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
################################...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
###############################################################
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
L = [2,0]
odetniesz głowę i spojrzysz na wzór F([0])
, a następnie odetniesz głowę [0]
i spojrzysz na wzór F([])
, który jest siatką 1x1 #
. Następnie użyj na nim odciętego indeksu 0
, aby zbudować wzór 3x3, i użyj na nim odciętego indeksu 2
, aby zbudować wzór 7x7. Aby odpowiedzieć na twoje pytanie: tak, zawsze zaczynasz od siatki 1x1, ponieważ jest to podstawowy przypadek rekurencji.
#
?L !=[]
w tym przykładzie, ponieważ ma 1 lub więcej elementów. Czy to znaczy, że F (L) jest zawsze#
w pierwszej kolejności?