Рассмотрим бесконечную матрицу:
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 2 3 0 0 2 3 0 0 2 3 0 0 2 3
0 0 0 4 5 6 0 0 0 4 5 6 0 0 0 4 ...
0 0 0 0 7 8 9 10 0 0 0 0 7 8 9 10
0 0 0 0 0 11 12 13 14 15 0 0 0 0 0 11
...
Каждая новая строка матрицы создается с z
нуля, где z
длина положительных цифр, которые мы используем в этой строке. Положительные цифры создаются, начиная с 1
увеличения и увеличения и добавляя дополнительную цифру каждый раз, когда вы перебираете строки. Этот шаблон повторяется бесконечно вправо. Так, например, первая строка начинается, 0, 1, 0, 1...
а начинается вторая 0,0, 2,3, 0,0, 2,3...
. По шаблону начинается третий ряд 0,0,0, 4,5,6, 0,0,0, 4,5,6...
.
Даны два целых числа в качестве входных данных, n
и x
, выход первого (верхнего) наиболее x
чисел n
го столбца матрицы выше. (Вы можете выбрать 0- или 1-индексирование для столбцов, просто укажите, какие в вашем представлении.)
Например, для ввода n = 0
(0-индексированный) столбец целиком 0
s, поэтому на выходе будет просто x
0
s.
Для ввода n = 15
и x = 6
вывода будет [1, 3, 4, 10, 11, 0]
.
Для ввода n = 29
и x = 15
вывода будет [1, 0, 6, 8, 15, 0, 0, 34, 39, 0, 0, 0, 0, 0, 120]
.
Для ввода n = 99
и x = 25
вывода будет [1, 3, 4, 0, 15, 0, 0, 0, 37, 55, 56, 0, 87, 93, 0, 0, 151, 163, 176, 0, 0, 0, 0, 0, 325]
.
I / O и правила
- Вход и выход могут быть заданы любым удобным способом .
- Можно предположить, что ввод и вывод соответствуют типу номера вашего языка.
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
n=1
так как результат Saply в матрице. это исправление является дорогостоящим. Интересно, есть ли один игрок в гольф?rep
сn
внутреннимsapply
, что спасло байт, но потом я вспомнил, чтоfor
циклы короче, чем еслиsapply
бы мне не пришлось определять функцию.Python 2 , 69 байт
Попробуйте онлайн!
источник
APL (Dyalog Classic) ,
272423 байта-1 благодаря @FrownyFrog
Попробуйте онлайн!
источник
MATL ,
2518 байтПопробуйте онлайн!
Спасибо Луису Мендо за игру в гольф 6 байтов!
По сути это порт MATL моего ответа R.
источник
K (нгн / к) ,
3331 байтПопробуйте онлайн!
источник
Шелуха , 14 байт
Аргумент
n
(первый) индексируется 1, попробуйте онлайн!В качестве альтернативы мы могли бы использовать
↑!TṠzo¢+†K0CNN
для того же количества байтов.объяснение
источник
Шелуха ,
2119 байтПринимает аргументы как
n
(1-индексированный), затемx
.Благодаря BMO сохранено 2 байта, но все же не так коротко, как ответ BMO.
Моя первая попытка использования шелухи.
Попробуйте онлайн!
источник
Haskell , 75 байт
Попробуйте онлайн!
источник
Python 2 , 55 байт
Попробуйте онлайн!
Разрабатывается самостоятельно; но я отмечаю, что это порт Javascript от Арнаулда .
источник
Perl 5
-n
, 52 байтаПопробуйте онлайн!
источник
Желе , 11 байт
Попробуйте онлайн!
-1 спасибо Джонатану Аллану .
Аргумент 1: х
Аргумент 2: н + 1
источник
0ṁ;Ɗ
->¬;$
сохраняет байт.’R
... (то есть, по крайней мере, для меня). Странная вещь заключается в том, что в течение последних нескольких дней я думал о последовательности Туэ-Морса (которая содержится в Jelly;¬$
).05AB1E , 25 байтов
Попробуйте онлайн!
05AB1E работает с матрицами, такими как зубная паста и апельсиновый сок, но неплохой подсчет байтов учитывает, насколько плоха моя реализация. Даже мой код смеется надо мной "
LO©L
".источник
Древесный уголь , 19 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Фрагмент
EιL⊞Oυω
генерирует следующиеi
целые числа, при этом целесообразно помещать фиктивное значение в массив при каждом прохождении цикла и брать длину результирующего массива.источник
Java 8,
656360 байтn
0 индексируется,x
1 индексируется, выводит числа с новой строкой, разделенные и перевернутые.Порт ответа @ Arnauld's JavaScript (ES6) .
Попробуйте онлайн.
Печатный результат в правильном порядке на
86 байт длиннее: попробуйте онлайн.источник
Haskell, 67 байт
Попробуйте онлайн!
источник