Это сложно, но можно
Всё, последняя тревожная задачка месяца. Дальше задачки будут только жизнеутверждающие и позитивные. А пока — паника и тревога. В последний раз можно.
Килограммовая пачка фасоли стоит 78 рублей и занимает 0,7 литра в объёме, а такая же пачка макарон — 25 рублей и занимает 1,35 литра. У нас есть 5000 рублей. Чего и сколько нужно купить, чтобы вес итоговых продуктов получился максимальным, если в шкаф влезает не больше двухсот литров продуктов.
Эту задачку можно решить вручную с помощью математики или с помощью кода: написать программу, которая переберёт все значения и найдёт оптимальное. Гораздо проще потратить три минуты на написание кода и начальных условий, чем час на само решение.
Смысл кода будет такой: мы дадим компьютеру задание перебрать все возможные варианты и показать те, которые подходят под наши условия. Нам остаётся только найти границы для перебора и продумать условия.
Так как в шкафу всего 200 литров, то выясним, сколько максимум одного товара мы можем в него впихнуть:
фасоль — 200 / 0,7 = 285,7. Но так как 0,7 пачки не влезают, остаётся 285 пачек фасоли — максимум в шкафу.
макароны — 200 / 1,35 = 148,1. Получается, что если класть только их, то влезет 148 пачек макарон.
Теперь в этих границах мы методом простого перебора просто просмотрим все комбинации, которые можно получить. Наша задача — найти максимальный вес, который можно положить в шкаф, учитывая ограничения по объёму и бюджету.
Для этого мы в самом начале сделаем переменную, которая отвечает за максимальный вес, и будем на каждом шаге смотреть — текущая комбинация весит больше или нет. Если больше, чем текущее значение переменной, то записываем в неё новый максимальный вес и запоминаем количество пачек каждого товара.
Когда цикл закончится, нам останется только вывести эти значения — они и будут нашим ответом. Поехали писать код на Python:
Запустите код, чтобы узнать правильный ответ. Есть ещё и второй, но нашему коду достаточно первого.