Послідовність Ремамана ( A005132 ) - це математична послідовність, визначена як така:
Альтернативне, простіше словесне пояснення полягає в наступному:
Віднімайте, якщо ви не можете (число від’ємне або було використано раніше), у цьому випадку додайте.
Перші кілька термінів -
Тепер вже існує ця проблема, яка просить генерувати n
третій термін послідовності. Цей трохи відрізняється.
Виклик
Давши число n
, намалюйте перші n
члени послідовності. Що я маю на увазі під «малюванням»? Дозвольте продемонструвати:
- Намалюйте
max([A(y) for y<=n])
одиниці рядка чисел у довжину.n
Зараз ми будемо вважати, що це 5, тому рядок чисел становить 6 одиниць (оскільки найбільший з , , , і дорівнює ). Зробіть лінію від підкреслення, починаючи з 0:
______
- Почніть з переходу між першим та другим доданками: тобто 0 і 1. Використовуйте
|
та-
намалюйте квадрат (рівну довжину та висоту), йдучи вгору. У цьому випадку нам доведеться пропустити,-
оскільки відстань становить лише 1.
||
______
- Тепер ми проведемо наступний крок ( до A ( 3 ) = 3 ) в нижній частині рядка (ми чергуємо між собою вгору і вниз кожен раз):
||
______
| |
|-|
Як бачите, ця лінія також має висоту 2, оскільки висота повинна дорівнювати відстані між двома членами.
Якщо ми продовжимо, ми зрештою дістанемося:
|--|
| |
|| | |
______
||| |
||| |
| |
|---|
Правила
- Якщо є
-
і|
стикається, пізніший має пріоритет. - Перед / після зображення можуть бути попередні пробіли / проміжки , але трейлінг / попередні
_
s або-
s не допускаються (виняток становить 0- або 1- індексація) - Ви можете встановити 0 крапки перед першим
_
у рядку чисел або безпосередньо після нього. - Немає альтернативних символів для
-
,|
або_
можуть бути використані. - Це код-гольф , тому найкоротша відповідь у байтах виграє.
Тестовий випадок
Ось ще один тестовий випадок, с n=10
|-------|
||-----||
|| ||
|----| || ||
| | || ||
||--|| || ||
|| || || ||
|||| || || ||
_____________________
||| || ||| ||
||| || ||| ||
| || ||| ||
|---|| ||| ||
| ||| ||
|---||| ||
||------||
|--------|
Не ясно, де слід розмістити лівий край квадрата.
—
Даніїл Тутубалін
@DaniilTutubalin Я не впевнений, що я розумію, що ти маєш на увазі.
—
Geza Kerecsenyi
В основному, оператор лише вказує, що нам потрібно намалювати квадрати (ширина = висота) і що вони повинні чергуватися вгору і вниз. Немає інструкцій щодо розміру та положення квадратів. У тестовому випадку я бачу, що 2 квадрата можуть мати однакове положення лівого краю.
—
Даніїл Тутубалін
Я думаю
—
Geza Kerecsenyi
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.
завершити це досить добре.
Я думаю, що тестовий випадок для n = 10 неправильний від 13-> 20 і далі.
—
Нік Кеннеді