Как раздать X кусочек N разной вещи всячески? - PullRequest
0 голосов
/ 22 апреля 2019

Извините за мой плохой английский. Моя проблема заключается в следующем: Мне нужно распределить кусочек Х между N вещами всеми возможными способами. Допустим, X равен 5, а N - 2 (но это может быть что-то еще, например, 4, что более сложно).
Это было бы только для int, поэтому я попытался List для результата списка результатов, но я не мог понять, как генерировать возможные комбинации.

Для ввода типа X = 5, N = 2 мой ожидаемый результат будет:

  1. {5, 0}
  2. {4, 1}
  3. {3, 2}
  4. {2, 3}
  5. {4, 1}
  6. {0, 5}

1 Ответ

0 голосов
/ 23 апреля 2019

У вас есть начальная сумма ячеек массива X и N.

Сделать функцию.

Если массив заполнен, выведите его содержимое.

Заполните первую ячейку всеми возможными значениями.

Для каждого значения v вызывать функцию с аргументом (X-v) для заполнения следующей ячейки.

Если вы используете глобальный массив, позаботьтесь о восстановлении состояния массива после рекурсивных вызовов

...