- 22, Oct 2024
- #1
Фон
Связанный: теория гольфланга, которую я недавно опубликовал в TNB
Не более чем \$n\$-арные деревья представляют собой корневые деревья, в которых каждый внутренний узел имеет от 1 до \$n\$ дочерних элементов (включительно). Два дерева считаются идентичными только в том случае, если формы точно совпадают без изменения порядка дочерних элементов каждого узла. Другими словами, порядок детей слева направо имеет значение.
Например, ниже приведен пример не более чем троичного дерева (каждый узел помечен его исходящей степенью, а листья равны нулям):
2
/ \
1 2
| / \
3 0 1
/|\ |
0 0 0 0
Связанные последовательности OEIS: А006318 - количество не более чем двоичных деревьев, имеющих \$n\$ внутренних узлов, и А107708 предназначен для не более чем троичных деревьев.
Обратите внимание, что одноузловое дерево является допустимым не более чем \$n\$-арным деревом для любого значения \$n\$, поскольку оно не имеет внутренних узлов.
Испытание
Напишите функцию или программу, которая по положительному целому числу \$n\$ (1-й вход) отображает натуральное число (2-й вход) в уникальное не более чем \$n\$-арное дерево. Это должна быть биекция; каждое дерево должно иметь уникальное натуральное число, которое соответствует дереву. Для оценки учитывается только код, идущий от числа к дереву, но рекомендуется указать противоположную сторону, чтобы продемонстрировать, что это действительно биекция.
Выходной формат дерева является гибким (вложенные массивы, строковые/плоские представления массивов, включая круглые скобки или префиксную запись). Вы также можете выбрать «натуральное число», начиная с 0 или 1.
Применяются стандартные правила. Выигрывает самый короткий код в байтах.
#код-гольф #код-гольф #математика #открытая-функция