Треугольник Зейделя - это математическая конструкция, похожая на треугольник Паскаля, и известная своей связью с числами Бернулли.
Первые несколько строк:
1
1 1
2 2 1
2 4 5 5
16 16 14 10 5
16 32 46 56 61 61
Каждая строка генерируется следующим образом:
Если номер строки четный (1-индексированный):
Сбить первый элемент предыдущего ряда
Каждый следующий элемент является суммой предыдущего элемента и элемента над ним
Дублировать последний элемент
Если номер строки нечетный:
Сбить последний элемент предыдущего ряда
Возвращаясь назад , каждый элемент является суммой предыдущего элемента и элемента над ним.
Дублируйте то, что сейчас является первым предметом.
По сути, мы строим треугольник в виде зигзага:
1
v
1 > 1
v
2 < 2 < 1
v
2 > 4 > 5 > 5
Для получения дополнительной информации см. Страницу Википедии о числах Бернулли.
Соревнование:
Если n
в качестве аргумента функции или из STDIN, выведите или вернете либо т- n
ю строку треугольника Зейделя, либо первые n
строки. Вы можете использовать либо 0, либо 1 индексирование.
Вам не нужно обрабатывать отрицательный или нецелочисленный ввод (ни 0, если индексирован 1). Вам не нужно обрабатывать выходы больше2147483647 = 2^31 - 1
Поскольку это код-гольф, делайте это как можно меньше байтов.
Примеры:
В этих примерах возвращаемое значение является n
строкой с 0 индексами.
Input -> Output
0 1
1 1 1
2 2 2 1
6 272 272 256 224 178 122 61
13 22368256 44736512 66750976 88057856 108311296 127181312 144361456 159575936 172585936 183194912 191252686 196658216 199360981 199360981