Определение
Определите n- й массив последовательности CURR следующим образом.
Начните с одноэлементного массива A = [n] .
Для каждого целого к в А , заменить запись K с K натуральных чисел, подсчитывая от 1 до K .
Повторите предыдущий шаг n - еще 1 раз.
Например, если n = 3 , мы начинаем с массива [3] .
Заменим 3 на 1, 2, 3 , получив [1, 2, 3] .
Теперь мы заменим 1 , 2 и 3 на 1 ; 1, 2 и 1, 2, 3 (соотв.), Получая [1, 1, 2, 1, 2, 3] .
Наконец, мы выполняем те же замены, что и на предыдущем шаге, для всех шести целых чисел в массиве, получая [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] . Это третий массив CURR.
задача
Напишите программу функции, которая, учитывая строго положительное целое число n в качестве входных данных, вычисляет n- й массив CURR.
Выходными данными должен быть какой-то плоский список (и массив, возвращаемый функцией, строковое представление синтаксиса массива вашего языка, разделенных пробелами и т. Д.).
Это код-гольф . Пусть победит самый короткий код в байтах!
Контрольные примеры
1 -> [1]
2 -> [1, 1, 2]
3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3]
4 -> [1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4]
5 -> [1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]
6 -> [1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6]
[2]
), а не как целое число?Ответы:
Желе, 3 байта
Попробуйте онлайн
объяснение
источник
Python, 50 байт
Сфера злоупотребления! Например, для
i=3
строки, которая должна быть оценена, расширяется до.Каким-то образом, несмотря на использование входной переменной функции
i
для всего, Python различает каждый индекс итерации как принадлежащий отдельной области видимости, как если бы выражение былос
i
входом в функцию.источник
eval
, очевидно, сам код должен быть портирован, но я подумал, что вы все равно можете это предположить.05AB1E,
63 байтаРазъяснения
Попробуйте онлайн
Сохранено 3 байта благодаря @Adnan
источник
DFL
на 3 байта короче :)Сетчатка , 33 байта
Ввод и вывод в одинарный.
Попробуйте онлайн!
Несмотря на то, что я не использовал закрытую форму для связанной задачи, адаптация этого ответа была на удивление хитрой.
источник
+%(M!&
это самая длинная метка, которую я когда-либо видел.Python 2, 82 байта
Это не самое короткое решение, но оно иллюстрирует интересный метод:
2^(2*n-1)
числа в двоичном видеn
нихисточник
На самом деле, 9 байтов
Попробуйте онлайн!
Объяснение:
Спасибо Leaky Nun за байт и вдохновение за еще 2 байта.
источник
;#@"♂R♂i"*ƒ
сохраняет байт;#@`♂R♂i`n
спасает еще один!C #, 128 байт
источник
using static System.Linq.Enumerable
, вы можете сделать это:int[]J(int n){var l=new[]{n};while (n-- > 0){l = l.Select(p => Range(1, p)).SelectMany(m => m).ToArray();}return l;}
APL, 11 байт
Тестовое задание:
Объяснение:
+⍵
: начиная с⍵
,⍣⍵
: сделайте следующее⍵
время:⍳¨∘∊
: выровнять вход, а затем сгенерировать список [1..N] для каждого N на входе∊
: сгладить результат этогоисточник
{(∊⍳¨)⍣⍵⊢⍵}
{(∊∘(⍳¨))⍣⍵+⍵}
что подумал, а как мне избавиться от этих скоб?CJam, 14 байтов
Проверьте это здесь.
объяснение
источник
Mathematica,
2726 байтов1 байт сохранен с вдохновением от ответа Эссари.
Довольно просто: для ввода
x
мы начинаем с,{x}
а затем применяемRange
к немуx
время (Range
этоListable
означает, что оно автоматически применяется к целым числам внутри произвольно вложенных списков). В итогеFlatten
результат.источник
Clojure, 59 байт
Объяснение:
Действительно прямой путь решения проблемы. Работаем изнутри:
источник
Python 3,
7574 байтаЭто просто прямой перевод описания проблемы в код.
Изменить: Сохраненный один байт благодаря @Dennis.
источник
print
можете выйти за пределыexec
.[k]
по какой-то причине оно просто печатается . Я перестал пытаться выяснить, был ли это вопрос объема или что-то еще.R,
6049 байтовДовольно простое использование
unlist
иsapply
.Спасибо @MickyT за сохранение 11 байтов
источник
seq
чтобы уменьшить количество байтовphp 121
На самом деле не так уж много хитростей за этим. Сглаживание массива в php не короткое, поэтому необходимо сначала построить его массив
источник
<?
или 6 байтов с-r
и без тега.Haskell, 33 байта
Спасибо Ними за сохранение байта.
Бессмысленная версия длиннее (35 байт):
источник
iterate(>>= \a->[1..a])
на один байт меньше.JavaScript (Firefox 30-57),
6360 байтПорт ответа @ xnor на Python.
источник
SyntaxError: missing : in conditional expression
) и Babel (Unexpected token (1:21)
). Что я делаю неправильно?)
что эта версия как-то закралась.J, 18 байт
Прямой подход, основанный на процессе, описанном в задаче.
использование
объяснение
источник
Pyth, 8 байт
Попробуйте онлайн!
источник
Желе, 7 байт
Быстро, прежде чем Деннис отвечает (JK)
Попробуйте онлайн!
источник
F #, 63 байта
Возвращает анонимную функцию, принимающую n в качестве входных данных.
Заменяет каждую запись k в A на [1..k], повторяет процесс n раз, начиная с A = [n].
источник
Swift 3, 58 байт
Предназначен для запуска прямо на игровой площадке, где n установлено на входе:
Ungolfed, с самой короткой нотацией стороны возвращены:
источник
Java, 159 байт
Процедура
использование
Пример вывода:
источник
Python 2,
696866 байтРедактировать: 1 байт сохранен благодаря @xnor. Сохранено 2 байта благодаря @ Деннис ♦.
источник
exec
. В Python 2 это ключевое слово, а не функция. Я считаю 68 байтов между прочим.Утилиты Bash + GNU, 49
Трубная рекурсивная функция FTW!
n
передается в командной строке. Вывод через новую строкуИспользование
dd
приводит к отправке статистики в STDERR. Я думаю, что это нормально, но если нет, тоdd
может быть замененоcat
на 1 дополнительный байт.источник
{...;}
на,(...)
чтобы сохранить байт.Perl 5, 53 байта
Подпрограмма:
Увидеть это в действии как
источник
Рубин, 61 байт
источник
PHP,
10098 байтБеги с
php -r '<code>' <n>
.В каждой итерации создайте временную копию цикла с 1 .. (первое значение удалено), пока не
$a
станет пустым.Эти два все еще и, вероятно, останутся в 100 байтах:
В каждом цикле итерации в обратном порядке через массив заменяя каждое число диапазоном.
В каждом цикле итерации через массив увеличивайте индекс на предыдущее число и заменяйте каждый индексированный элемент диапазоном
источник