Я учу себя основам программирования и застрял в проблеме динамического программирования.Давайте возьмем печально известную проблему с рюкзаком:
Учитывая набор предметов, каждый из которых имеет вес и значение, определите количество каждого предмета, включаемого в коллекцию, так что общий вес будет меньше или равензаданный лимит и общее значение максимально велико.
Давайте установим предел веса на 10 и дадим два списка: weights = [2,4,7] и values = [8,4,9] (Я только что сделал это).Я могу написать код, чтобы дать максимальное значение с учетом ограничения - это не проблема.Но что если я захочу узнать, какие значения я фактически использовал?Не общая стоимость - отдельные ценности.Таким образом, для этого примера максимумом будут объекты с весами 2 и 7 для общего значения 8 + 9 = 17. Хотя я не хочу, чтобы мой ответ читался как «17» - я хочу вывод спискакак: (8, 9).Это может быть легко для этой проблемы, но проблема, над которой я работаю, использует списки, которые намного больше и имеют повторяющиеся номера (например, несколько объектов имеют значение 8).
Дайте мне знать, есликаждый может думать о чем угодно.Как всегда, много любви и признательности к сообществу.