Вы организовываете производство печенья. Каждый день вы можете посвятить или покупке...

0 голосов
33 просмотров

Вы организовываете производство печенья. Каждый день вы можете посвятить или покупке новой духовки, или производству печенья.
Первая духовка, которую вы купите, будет стоить 5 коробок печенья. Стоимость каждой следующей духовки будет больше стоимости предыдущей на 5 коробок (таким образом, вторая духовка будет стоить 10 коробок, третья - 15, и так далее). Понятно, что вы можете купить духовку только в том случае, когда у вас на складе есть необходимое количество коробок.
Если вы посвящаете день производству печенья, вы производите одну коробку руками, плюс по одной коробке в каждой из купленных духовок. Если вы посвящаете день покупке духовки, то вы покупаете духовку и больше в этот день ничего не происходит.
За какое минимальное количество дней вы сможете накопить у себя на складе 532 коробки печенья?


Информатика (41 баллов) | 33 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Вообщем стратегия такая: сначала наращиваем мощности, а потом копим печеньки
Программа вычисляет оптимальную максимальную мощность. Это оказывается 9 или 10 печенек в день (т.е 8 или 9 духовок)
в минимуме в общем целом на это уйдет 108 дней

код на руби

(1..100).step(1) {|max_productivity|
    productivity = 1
    cockies = 0
    days = 0
    upgrade_cost = 5 * productivity

    while cockies < 532
        if cockies >= upgrade_cost and productivity < max_productivity
            cockies -= upgrade_cost
            productivity += 1
            upgrade_cost = 5 * productivity
        else
            cockies += productivity
        end

        days += 1
    end
    p [max_productivity, days, cockies, productivity]
}

Вывод (куска)
[6, 119, 534, 6]
[7, 112, 532, 7]
[8, 109, 536, 8]
[9, 108, 540, 9]
[10, 108, 540, 10]
[11, 109, 539, 11]
[12, 111, 540, 12]
[13, 113, 533, 13]
[14, 116, 532, 14]
[15, 120, 540, 15]
[16, 124, 544, 16]
[17, 128, 544, 17]
[18, 132, 540, 18]


(53.1k баллов)