Вступление
В этом вызове матрица 2 × 2 индексируется следующим образом:
0 1
2 3
Мы определяем семейство фрактально-подобных паттернов F(L)
, где список L
длин n
этих индексов F(L)
имеет размер .2n-1 × 2n-1
- Если
L == []
, тоF(L)
это шаблон 1 × 1#
. Если
L != []
, тоF(L)
строится следующим образом. ПозвольтеP
быть шаблоном, полученным изL
с удаленным первым элементом. Возьмите четыре сетки размера, заполненные точками , и замените индексированную сетку на шаблон . Затем склейте сетки, используя один слой хешей между ними. Вот диаграммы для четырех случаев: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] ...#... ...#... #... ...#
пример
Рассмотрим вход L = [2,0]
. Начнем с сетки 1 × 1 #
и пройдем L
справа. Самый правый элемент 0
, поэтому мы берем четыре копии сетки 1 × 1 .
, заменяем первую на #
и склеиваем их вместе с хешами. Это приводит к сетке 3 × 3
##.
###
.#.
Следующий элемент 2
, поэтому мы берем четыре копии сетки 3 × 3 .
s и заменяем третий на сетку выше. Четыре сетки
... ... ##. ...
... ... ### ...
... ... .#. ...
и склеивание их вместе с #
s результатов в сетке 7 × 7
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
Это наш окончательный результат.
вход
Ваш вклад представляет собой список L
индексов 0, 1, 2, 3
. Вы можете принять его как список целых чисел или строку цифр. Обратите внимание, что он может быть пустым и содержать дубликаты. ДлинаL
не более 5.
Выход
Ваш вывод является шаблоном F(L)
в виде строки с разделителями новой строки.
Правила и оценки
Вы можете написать полную программу или функцию. выигрывает наименьшее количество байтов, и стандартные лазейки запрещены.
Контрольные примеры
[]
#
[0]
##.
###
.#.
[3]
.#.
###
.##
[2,0]
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
[1,1]
...#.##
...####
...#.#.
#######
...#...
...#...
...#...
[1,2,0]
.......#...#...
.......#...#...
.......#...#...
.......########
.......###.#...
.......#####...
.......#.#.#...
###############
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
[3,3,1]
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
###############
.......#...#...
.......#...#...
.......#...#...
.......########
.......#...#.##
.......#...####
.......#...#.#.
[0,1,2,3]
.......#...#...#...............
.......#...#...#...............
.......#...#...#...............
.......#########...............
.......#.#.#...#...............
.......#####...#...............
.......#.###...#...............
################...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
###############################
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
[0,0,1,2,3]
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#########...............#...............................
.......#.#.#...#...............#...............................
.......#####...#...............#...............................
.......#.###...#...............#...............................
################...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
################################...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
###############################################################
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
L = [2,0]
вы отсекаете голову и смотрите на шаблон F([0])
, затем отсекаете голову [0]
и смотрите на шаблон F([])
, который является сеткой 1x1 #
. Затем вы используете отрубленный индекс 0
для построения шаблона 3х3, а затем используете отрубленный индекс 2
для построения шаблона 7х7. Чтобы ответить на ваш вопрос: да, вы всегда начинаете с сетки 1x1, так как это базовый случай рекурсии.
#
?L !=[]
в этом примере, поскольку он имеет 1 или более элементов. Означает ли это , что F (L) является всегда#
на первом?