Как разложить число на сумму других чисел? Приветствую!Вопрос следующий: К примеру, есть набор чисел (2, 3, 4, 5, 6) и какое-то произвольное число, такое, что n >=2. Так вот, нужно разложить это число на сумму вышеперечисленных(они могут повторяться в исходном наборе).Пример: число 7 можем разложить как 3 + 4. Число 9 как 5 + 4. Число 11 разложим как 5 + 4 + 2.
Существуют ли подобные алгоритмы? Ну и пример на каком-либо языке, если есть, очень приветствуется.

21 Авг 2019 в 06:11
164 +1
0
Ответы
1

Да, существуют алгоритмы для разложения числа на сумму других чисел. Один из таких алгоритмов - это динамическое программирование.

Вот пример алгоритма на Python:

def split_number(target, numbers):
dp = [0] * (target + 1)
dp[0] = 1
for i in range(1, target + 1):
for num in numbers:
if i - num >= 0:
dp[i] += dp[i - num]
if dp[target] == 0:
return "Невозможно разложить число на сумму заданных чисел"
result = []
current_target = target
while current_target > 0:
for num in numbers:
if current_target - num >= 0 and dp[current_target - num] > 0:
result.append(num)
current_target -= num
break
return result
target = 11
numbers = [2, 3, 4, 5, 6]
result = split_number(target, numbers)
print(result)

Этот код будет разлагать число 11 на сумму чисел из набора (2, 3, 4, 5, 6). Результат выполнения будет [5, 4, 2].

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир