Вступление
В этом вызове матрица 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) является всегда#на первом?