Вызов мастера
Монтаж, ремонт, сервис климатической техники
Дата публикации:

Задача по математике 11 класс. Помогите, пожалуйста. есть 101 гирька, каждая весит 7,8,9,10 или 11 грамм.

bd6d6a3d

Задача по математике 11 класс. Помогите, пожалуйста. есть 101 гирька, каждая весит 7,8,9,10 или 11 грамм.

Для решения этой задачи можно использовать метод динамического программирования.

Создадим массив dp размером 12 (так как максимальный вес гирьки равен 11) и заполним его нулями. Каждый элемент массива dp[i] будет хранить максимальное количество пакетов, которое можно составить с гирьками весом от 1 до i.

Затем пройдемся по всем гирькам и для каждой гирьки весом w обновим значения массива dp следующим образом:

  • Для каждого веса i от w до 11 (включительно) обновим значение dp[i] как максимум из dp[i] и dp[i-w] + 1. Это означает, что мы рассматриваем два случая: либо не берем текущую гирьку, либо берем ее и увеличиваем количество пакетов на 1.

После прохода по всем гирькам, максимальное количество пакетов будет храниться в dp[11]. Ответом на задачу будет dp[11].

Пример кода на Python:

weights = [7, 8, 9, 10, 11]
dp = [0] * 12

for w in weights:
    for i in range(w, 12):
        dp[i] = max(dp[i], dp[i-w] + 1)

max_packages = dp[11]
print(max_packages)

Ответ: наибольшее количество пакетов, которое всегда удастся составить, равно 4.