Главное — чтоб самому нравилось

воскресенье, 26 декабря 2010 г.

Задачка про бензовоз

Давно что-то у меня не было тут задачек. Исправляюсь - представляю вашему вниманию задачку, которую я немножко переформулировал для того чтобы было сложнее нагуглить ответ. Ну и картинку нарисовал, чтоб полегче думалось.

Есть 3000 литров бензина и бензовоз вместимостью 1000 литров. Бензовоз сам тратит на свои перемещения 1 литр бензина на километр пути, независимо от нагрузки которую он везёт.

Каким-то образом (это на самом деле издержки моей переформулировки :-) бензовоз может оставлять любое количество бензина в любом месте пути любое количество раз, ну и конечно же забирать бензин оттуда.

Какое максимальное количество бензина может перевезти бензовоз на расстояние 1000 км.


Дерзайте! Ответ добавлю сюда в этом году.
upd: Добавлен ответ

Ответ уже прозвучал в комментариях - 533 литра, или если быть совсем точным и жадным, то можно выкроить ещё треть литра.

Методика перевозки следующая. Нужно последовательно организовать где-то в пути две промежуточные базы. Доставить 2000 литров сначала в одну базу, потом из неё доставить оставшуюся 1000 литров во вторую, а дальше оттуда уже приехать в точку назначения, с оставшемся бензином, который и будет нашим профитом в этой задаче.

Очевидно что, не организовывая такие базы в пути, доставить больше чем 0 бензина в точу В, возможности нет. Выезжать с неполной цистерной, вроде бы тоже экономически не выгодно. Именно поэтому наши базы и должны содержать количество бензина кратное 1000 л.

Учитывая это, легко найти расстояние, на котором будут располагаться наши базы, это:
1) 200 км, туда нам нужно будет съездить с исходной полной загрузкой 3 раза (1000 - 200 (дорога туда) - 200 (дорога обратно) = 600 (оставляем там)). Так как в последний раз нам возвращаться уже не придётся то получим бонусные 200 л. 3 * 600 + 200 = 2000
2) Аналогично следующая база может быть продвинута на чуть большее расстояние от первой, т.к. поездок нужно сделать уже всего 2. Легко подобрать цифру 333 (не будем тут возится с дробями). (1000 - 333 (туда) - 333 (обратно) = 333 (там)). Тоже есть бонус, но уже 333 литра. 2 * 333 + 333 = 1000. Вот такая у меня бухгалтерия тут :-).

Ну и собственно мы выдвигаемся на последний этап, с оставшейся 1000 л с отметки 200 + 333 = 533 км.

6 комментариев:

  1. моё предположение - 466
    есть набросок решения, но в нём есть предположения, которые пока не доказаны

    ОтветитьУдалить
  2. Мало (и дело даже не дробях). Думай дальше уважаемый Анонимный.

    ОтветитьУдалить
  3. У меня, к сожалению, тоже нет неопровержимого строго математического доказательства. Но так вроде интуитивно чувствуется, что больше уже не выжать :-).

    ОтветитьУдалить
  4. Тьфу, перепутал, моё решение даёт 533 довезённых литра, не 466.

    ОтветитьУдалить
  5. Ты припёр меня к стенке - 533 это верный ответ! Остальные думают как это возможно :-)

    ОтветитьУдалить
  6. В этом самом решении есть следующее допущение
    - что надо сделать только две промежуточных базы. Может быть это и верно. Может быть решение не зависит от количества баз. В любом случае это не очевидно для меня.

    ОтветитьУдалить