Introducción
En este desafío, una matriz 2 × 2 se indexa así:
0 1
2 3
Definimos una familia de patrones fractales F(L)
, donde L
hay una n
lista de longitud de estos índices y F(L)
tiene tamaño .2n-1 × 2n-1
- Si
L == []
, entoncesF(L)
es el patrón 1 × 1#
. Si
L != []
, entoncesF(L)
se construye de la siguiente manera. DejeP
ser el patrón obtenido deL
con el primer elemento eliminado. Tome cuatro cuadrículas de tamaño llenas de puntos y reemplace la cuadrícula indexada con el patrón . Luego, pegue las rejillas juntas usando una capa de hashes entre ellas. Aquí hay diagramas para los cuatro casos: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] ...#... ...#... #... ...#
Ejemplo
Considere la entrada L = [2,0]
. Comenzamos con la cuadrícula 1 × 1 #
, y atravesamos L
desde la derecha. El elemento más a la derecha es 0
, por lo que tomamos cuatro copias de la cuadrícula 1 × 1 .
, reemplazamos la primera por #
y las pegamos con hashes. Esto da como resultado la cuadrícula 3 × 3
##.
###
.#.
El siguiente elemento es 2
, entonces tomamos cuatro copias de la cuadrícula de 3 × 3 de .
s, y reemplazamos la tercera con la cuadrícula anterior. Las cuatro cuadrículas son
... ... ##. ...
... ... ### ...
... ... .#. ...
y pegarlos junto con #
s resulta en la cuadrícula 7 × 7
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
Este es nuestro resultado final.
Entrada
Su entrada es una lista L
de los índices 0, 1, 2, 3
. Puede tomarlo como una lista de enteros o una cadena de dígitos. Tenga en cuenta que puede estar vacío y puede contener duplicados. El largo deL
es como máximo 5.
Salida
Tu salida es el patrón F(L)
como una cadena delimitada por nueva línea.
Reglas y puntaje
Puede escribir un programa completo o una función. gana el conteo de bytes más bajo y no se permiten las lagunas estándar.
Casos de prueba
[]
#
[0]
##.
###
.#.
[3]
.#.
###
.##
[2,0]
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
[1,1]
...#.##
...####
...#.#.
#######
...#...
...#...
...#...
[1,2,0]
.......#...#...
.......#...#...
.......#...#...
.......########
.......###.#...
.......#####...
.......#.#.#...
###############
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
[3,3,1]
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
###############
.......#...#...
.......#...#...
.......#...#...
.......########
.......#...#.##
.......#...####
.......#...#.#.
[0,1,2,3]
.......#...#...#...............
.......#...#...#...............
.......#...#...#...............
.......#########...............
.......#.#.#...#...............
.......#####...#...............
.......#.###...#...............
################...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
###############################
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
[0,0,1,2,3]
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#########...............#...............................
.......#.#.#...#...............#...............................
.......#####...#...............#...............................
.......#.###...#...............#...............................
################...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
################################...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
###############################################################
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
L = [2,0]
, corta la cabeza y mira el patrón F([0])
, luego corta la cabeza [0]
y mira el patrón F([])
, que es la cuadrícula 1x1 #
. Luego, usa el índice cortado 0
en él para construir el patrón 3x3, y usa el índice cortado 2
en ese para construir el patrón 7x7. Para responder a su pregunta: sí, siempre comienza con la cuadrícula 1x1 ya que ese es el caso base de la recursividad.
#
?L !=[]
en ese ejemplo, ya que tiene 1 o más elementos. ¿Significa esto que F (L) siempre es un#
al principio?