- 22, Oct 2024
- #1
Я возился с бесконечными цепями резисторов (длинная история), когда наткнулся на следующий интересный рекурсивный шаблон:
N = 0 |- N = 1 |-|| |--- N = 2 |-|||-|- |---|-|- |-|||||| |------- N = 3 |-|||-|-|-|||-|| |---|-|-|---|--- |-|||||||-|||-|| |-------|---|--- |-|||-|-|-|-|-|- |---|-|-|-|-|-|- |-|||||||||||||| |--------------- N = 4 |-|||-|-|-|||-|||-|||-|-|-|||-|- |---|-|-|---|---|---|-|-|---|-|- |-|||||||-|||-|||-|||||||-|||||| |-------|---|---|-------|------- |-|||-|-|-|-|-|-|-|||-|-|-|||-|- |---|-|-|-|-|-|-|---|-|-|---|-|- |-|||||||||||||||-|||||||-|||||| |---------------|-------|------- |-|||-|-|-|||-|||-|||-|||-|||-|| |---|-|-|---|---|---|---|---|--- |-|||||||-|||-|||-|||-|||-|||-|| |-------|---|---|---|---|---|--- |-|||-|-|-|-|-|-|-|-|-|-|-|-|-|- |---|-|-|-|-|-|-|-|-|-|-|-|-|-|- |-|||||||||||||||||||||||||||||| |-------------------------------
Ширина каждого экземпляра этого узора в два раза превышает высоту. Чтобы перейти с одного уровня паттерна на другой, вы разбиваете этот прямоугольник на два подблока (каждый из которых представляет собой квадрат NxN):
N
Эти половинки затем дублируются и переставляются по следующему шаблону:
N
Испытание
Напишите программу/функцию, которая по заданному числу ABAA
ABBB
giving
|-|||-|-
|---|-|-
|-||||||
|-------
, outputs the AB =
|-||
|---
so A =
|-
|-
and B =
||
--
итерация этого рекурсивного дизайна. Это гольф.
Формат ввода-вывода относительно мягок: вы можете вернуть одну строку, список строк, двумерный массив символов и т. д. Допускаются произвольные конечные пробелы. Вы также можете использовать индексацию 0 или 1.
Примеры
Первые несколько итераций шаблона следующие:
|-||
|---
Интересно, есть ли какой-нибудь короткий алгебраический способ вычислить эту структуру?
#код-гольф #ascii-art