Программа для печати всех возможных групп набора чисел после n шагов

Мне нужно написать программу, которая распечатывает все возможные группы, которые могут быть сформированы из данного пользовательского ввода. Пользователь также указывает количество шагов (k), и на каждом шаге можно добавить только два элемента, чтобы сформировать одну группу.
Моим первым инстинктом было использовать простую функцию для вычисления комбинаций, используя nCk, а затем распечатать их все. Однако мне было отмечено, что количество возможных комбинаций будет намного выше, чем nCk.
Предположим, что набор из n=5 чисел 1,2,3,4,5 и k=2
Шаг 1: Одна группа создана. из всех возможных комбинаций предположим группу {(1, 2), 3, 4, 5}.
Шаг 2: Здесь есть много других возможностей. Это может быть {(1, 2, 3), 4, 5} ИЛИ {(1, 2), 3, (4, 5)} ИЛИ любая другая комбинация
Как подсчитать количество ВСЕХ таких групп, возможных за заданное количество шагов? А также печатать эти группы?
РЕДАКТИРОВАТЬ: на каждом шаге добавляются два элемента, чтобы показать сумму. Таким образом, после шага 1, 1+2=3, набор будет выглядеть как 3,3,4,5. Но для прояснения проблемы я пишу это как (1,2) вместо того, чтобы писать сумму.

0 ответов

Другие вопросы по тегам