Мои проблемы, как правило, немного сложны и непривлекательны. Так что тут что-то легкое и веселое.
Последовательность Алкуина
Последовательность Алкуина 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, и он должен сгенерировать двоичное изображение последовательности Алкуина 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создает белый столбец с двумя черными пикселями внизу.
0,0,0,1,0,2пока список в начале вопроса говорит 0,0,0,1,0,1.



