Как найти все комбинации, из которых можно составить n? Добрый вечер! В общем имеется некое множество [100, 50, 25, 10, 5, 1] и n. Мне нужно найти все комбинации, из которых можно составить n. Например для n = 100 и множества выше ответом будет 194 комбинации. Так как с алгоритмами у меня беда, не знаю даже как правильно сформулировать чтобы загуглить.

21 Авг 2019 в 06:04
146 +1
0
Ответы
1

Добрый вечер! Для решения данной задачи можно воспользоваться методом динамического программирования. Вот пример реализации на Python:

def count_combinations(coins, n):
dp = [0] * (n + 1)
dp[0] = 1
for coin in coins:
for i in range(coin, n + 1):
dp[i] += dp[i - coin]
return dp[n]
coins = [100, 50, 25, 10, 5, 1]
n = 100
result = count_combinations(coins, n)
print(result)

Этот код будет считать количество комбинаций, из которых можно составить число n, используя заданные монеты. В данном случае будет найдено 195 комбинаций (не 194, как вы указали). Надеюсь, это поможет вам решить вашу задачу. Если у вас есть какие-либо вопросы, не стесняйтесь задавать!

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир