Последовательность Recamán ( A005132 ) является математической последовательностью, определяемой как:
Альтернативное, более простое словесное объяснение состоит в следующем:
Вычтите, если вы не можете (число отрицательное или использовалось ранее), в этом случае добавьте.
Первые несколько терминов:
Теперь уже существует этот вызов, который просит вас сгенерировать n
й член последовательности. Этот немного отличается.
Вызов
Учитывая число n
, нарисуйте первые n
члены последовательности. Что я имею в виду под «рисовать»? Позвольте мне продемонстрировать:
- Нарисуйте номер строки
max([A(y) for y<=n])
единиц длины. Предположимn
, что на данный момент это 5, поэтому номерная строка имеет длину 6 единиц (поскольку наибольшее из , , , и равно ). Сделать строку из подчеркивания, начиная с 0:
______
- Начните с перехода между первым и вторым слагаемыми: то есть 0 и 1. Используйте
|
и-
для рисования квадрата (равной длины и высоты), идущего вверх. В этом случае нам придется пропустить,-
потому что расстояние составляет всего 1.
||
______
- Теперь мы будем рисовать на следующем шаге (от до ) в нижней части строки (мы чередуем вверх и вниз каждый раз):
||
______
| |
|-|
Как вы можете видеть, эта линия также имеет высоту 2, так как высота должна быть равна расстоянию между двумя членами.
Если мы продолжим, мы в конечном итоге доберемся до:
|--|
| |
|| | |
______
||| |
||| |
| |
|---|
правила
- Если есть
-
и|
сталкиваются, более поздний имеет приоритет. - Там может быть предшествующий / трейлинг пробелы перед / после изображения, но завершающие / предшествующие
_
s или-
s не допускаются (исключение составляет 0- или 1-индексация) - Вы можете установить точку 0 непосредственно перед первой
_
в числовой строке или сразу после нее. - Нет альтернативных символов для
-
,|
или_
могут быть использованы. - Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Прецедент
Вот еще один тестовый пример, с n=10
|-------|
||-----||
|| ||
|----| || ||
| | || ||
||--|| || ||
|| || || ||
|||| || || ||
_____________________
||| || ||| ||
||| || ||| ||
| || ||| ||
|---|| ||| ||
| ||| ||
|---||| ||
||------||
|--------|
As you can see, this line also has a height of 2, since the height must be equal to the distance between the two terms.
, а также You can choose to set the 0 point just before the first _ on the number line, or just after it.
завернуть это довольно хорошо.