Все комбинации для получения числа
Решаю задачу, уперся в то, что нужно найти все варианты для получения любого четного числа из набора четных положительных чисел
sum(i) = M, (i = 2, 4, ..., n)
Например, для M = 8, существуют такие наборы
2 2 2 2
2 2 4
2 6
4 4
8
Может есть какая-то формула?
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Проще всего рекурсивно сделать. Подразумевается, что числа чётные, и это проверять не надо.
ПРОЦЕДУРА РАЗЛОЖЕНИЕ(Сумма, Текущий, Набор)
ЕСЛИ Сумма == 0
ВЫВОДИТЬ Набор
ИНАЧЕ
ДЛЯ X от Текуший до Сумма С_ШАГОМ 2
РАЗЛОЖЕНИЕ(Сумма- X, X, Набор + [X])