Мої виклики, як правило, трохи жорсткі та непривабливі. Тож тут щось легке та веселе.
Послідовність Алкуїна
Послідовність Алькайна A(n)
визначається підрахунком трикутників. A(n)
- кількість трикутників із цілими сторонами та периметром n
. Ця послідовність називається після Алькуїна Йоркського.
Перші кілька елементів цієї послідовності, починаючи з n = 0
:
0, 0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7, 5, 8, 7, 10, 8, ...
Наприклад A(9) = 3
, тому що єдині трикутники з цілими сторонами та периметром 9
є 1 - 4 - 4
, 3 - 3 - 3
і 2 - 3 - 4
. 3 дійсні трикутники ви можете побачити нижче.
У цій послідовності є досить цікавий зразок. Наприклад A(2*k) = A(2*k - 3)
.
Для отримання додаткової інформації див. A005044 на сайті OEIS.
Виклик
Але ваше завдання полягає у двійковому представленні цих чисел. Якщо ми перетворимо кожен номер послідовності у його двійкове представлення, помістимо їх у вектори стовпців і вирівняємо їх, це створить досить цікаву бінарну картину.
На наступному малюнку ви можете побачити двійкове представлення порядкових чисел A(0), A(1), ..., A(149)
. У першому стовпці ви можете побачити двійкове подання A(1)
, у другому стовпчику представлення A(1)
тощо.
На цьому малюнку ви можете побачити якусь повторювану схему. Це навіть виглядає як фрактали, якщо ви шукаєте, наприклад, зображення із порядковими номерами A(600), A(601), ..., A(899)
.
Ваше завдання - створити такий образ. Ваша функція, ваш сценарій отримає два цілих числа 0 <= m < n
, і він повинен генерувати двійкове зображення послідовності Alcuin A(m), A(m+1), A(m+2), ..., A(n-2), A(n-1)
. Таким чином, вхід 0, 150
генерує перше зображення, а введення 600, 900
- друге зображення.
Ви можете використовувати будь-який популярний графічний формат, який хочете. Скажімо, кожен формат, який можна перетворити на png за допомогою image.online-convert.com . Крім того, ви можете відображати зображення на екрані. Не допускаються провідні білі рядки!
Це код-гольф. Так виграє найкоротший код (у байтах).
white=1 and black=0
чи навпаки?
white=0 and black=1
. Тож інший шлях. A(0)
створює білий стовпчик, A(9)=3
створює білий стовпчик з 2 чорними пікселями внизу.
0,0,0,1,0,2
той час як у списку на початку питання йдеться 0,0,0,1,0,1
.