Если задано целое число n
, выведите первые n
наклонные двоичные числа с индексами 0 или 1. Они называются так из-за того, как они генерируются:
Напишите числа в двоичном виде друг под другом (выровнено по правому краю):
........0
........1
.......10
.......11
......100
......101
......110
......111
.....1000
.........
Затем вам нужно взять каждую диагональ от нижнего левого до верхнего правого, чтобы каждая последняя цифра была последней цифрой диагонали. Вот четвертая диагональ (с нулевым индексом), помеченная символом x
's' 100
:
........0
........1
.......10
.......11
......10x
......1x1
......x10
......111
.....1000
.........
Наклонные диагонали по порядку:
0
11
110
101
100
1111
1010
.......
Затем преобразовать в десятичную, давая 0, 3, 6, 5, 4, 15, 10, ...
Это код-гольф , поэтому выигрывает самый короткий код в байтах.
code-golf
sequence
base-conversion
binary
mbomb007
источник
источник
n
либо первыеn+1
числа?Ответы:
Желе, 11 байт
Попробуйте онлайн!
объяснение
Транспонирование - это самый простой способ дополнить массив для работы встроенных диагоналей. Затем реверсы добавляются, чтобы получить все в правильном порядке.
источник
JavaScript (ES6), 53 байта
0 индексированные. Я не часто использую рекурсивную функцию в качестве параметра для
map
.источник
Mathematica, 46 байт
Безымянная функция, принимающая неотрицательное целое число в
#
качестве входных данных и возвращающая последовательность с 0 индексами вплоть до#
th-го члена. Создает наклонные двоичные числа, используяBitAnd
(поразрядно "и") с соответствующими степенями 2.источник
Python3,
6361 байтИспользует формулу от OEIS.
-2 байта благодаря Луису Мендо !
i+1
->i
источник
Sum_{ k >= 1 such that n + k == 0 mod 2^k } 2^k
к этой более простой побитовой формуле?PHP, 68 байт
принимает данные из аргумента командной строки, печатает числа, разделенные подчеркиванием. Беги с
-r
.источник
MATL ,
1817 байтПопробуйте онлайн!
Это использует формулу от OEIS:
Код:
источник
Perl 6 ,
5943 байтаИспользует формулу со страницы OESIS.
Обновление: переключен на побитовую и основанную формулу из Python ответа TuukkaX .
Perl 6 , 67 байт
Наивное решение.
Преобразует числа, являющиеся частью диагонали, в основание 2, берет правильные цифры каждого и преобразует результат обратно в основание 10.
источник
Желе , 15 байт
Это было бы короче, чем другой ответ Jelly, если бы нам пришлось печатать только n- й термин.
Попробуйте онлайн!
источник
R, 66 байт
Безымянная функция, которая использует
bin
функцию изmiscFuncs
пакета для вычисления длины,n
представленной в двоичном формате, а затем с помощью одной из формул OEIS.источник