introduzione
In questa sfida, una matrice 2 × 2 viene indicizzata in questo modo:
0 1
2 3
Definiamo una famiglia di modelli frattali F(L)
, in cui L
è presente un n
elenco di F(L)
lunghezza di questi indici e ha dimensioni .2n-1 × 2n-1
- Se
L == []
, alloraF(L)
è il modello 1 × 1#
. Se
L != []
, alloraF(L)
è costruito come segue. SiaP
il modello ottenutoL
con il primo elemento rimosso. Prendi quattro griglie di dimensioni riempite con punti e sostituisci la griglia indicizzata da con il motivo . Quindi, incolla le griglie insieme usando uno strato di hash tra di loro. Ecco i diagrammi per i quattro casi: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] ...#... ...#... #... ...#
Esempio
Considera l'input L = [2,0]
. Iniziamo con la griglia 1 × 1 #
e attraversiamo L
da destra. L'elemento più a destra è 0
, quindi prendiamo quattro copie della griglia 1 × 1 .
, sostituiamo la prima con #
e le incolliamo insieme con gli hash. Ciò si traduce nella griglia 3 × 3
##.
###
.#.
L'elemento successivo è 2
, quindi prendiamo quattro copie della griglia 3 × 3 di .
s e sostituiamo la terza con la griglia sopra. Le quattro griglie sono
... ... ##. ...
... ... ### ...
... ... .#. ...
e incollandoli insieme ai #
risultati di s nella griglia 7 × 7
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
Questo è il nostro risultato finale.
Ingresso
Il tuo input è un elenco L
di indici 0, 1, 2, 3
. Puoi prenderlo come un elenco di numeri interi o una stringa di cifre. Si noti che può essere vuoto e può contenere duplicati. La lunghezza di L
è al massimo 5.
Produzione
L'output è il modello F(L)
come stringa delimitata da nuova riga.
Regole e punteggio
È possibile scrivere un programma completo o una funzione. vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Casi test
[]
#
[0]
##.
###
.#.
[3]
.#.
###
.##
[2,0]
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
[1,1]
...#.##
...####
...#.#.
#######
...#...
...#...
...#...
[1,2,0]
.......#...#...
.......#...#...
.......#...#...
.......########
.......###.#...
.......#####...
.......#.#.#...
###############
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
[3,3,1]
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
###############
.......#...#...
.......#...#...
.......#...#...
.......########
.......#...#.##
.......#...####
.......#...#.#.
[0,1,2,3]
.......#...#...#...............
.......#...#...#...............
.......#...#...#...............
.......#########...............
.......#.#.#...#...............
.......#####...#...............
.......#.###...#...............
################...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
###############################
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
[0,0,1,2,3]
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#########...............#...............................
.......#.#.#...#...............#...............................
.......#####...#...............#...............................
.......#.###...#...............#...............................
################...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
################################...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
###############################################################
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
L = [2,0]
, tagliare la testa e guardare il modello F([0])
, quindi tagliare la testa di [0]
e guardare il modello F([])
, che è la griglia 1x1 #
. Quindi si utilizza l'indice troncato 0
su di esso per costruire il modello 3x3 e si utilizza l'indice troncato 2
su quello per costruire il modello 7x7. Per rispondere alla tua domanda: sì, inizi sempre con la griglia 1x1 poiché questo è il caso base della ricorsione.
#
?L !=[]
in questo esempio, poiché ha 1 o più elementi. Questo significa che F (L) è sempre un#
in un primo momento?