Решение. 50 байкеров (#105)

Mathreshka
2 min readMar 2, 2020

--

Ответ: 100 x (1 + 1/2 + … + 1/50) ~= 450 [км]

Решение

Для обобщения положим, что n — количество мотоциклов, x — ёмкость топливного бака в километрах.

Обозначим f(n) то максимальное расстояние, на которое можно уехать на одном мотоцикле, если изначально их было n штук. Из условия задачи мы знаем, что f(1) = x.

1. Ясно, что первые x/n км должны проехать все n мотоциклов. Действительно, пусть мы оставили один мотоцикл раньше, то есть все мотоциклы израсходовали менее 1/n ёмкости своего бака. Тогда n мотоциклов суммарно израсходуют < 1 бака. В этой ситуации бензобак выбранного мотоцикла невозможно опустошить за счёт переливания по бакам оставшихся (n-1) мотоциклов. То есть «пропадёт» часть бензина, на который можно было бы проехать далее.

2. Как только мотоциклы проедут x/n км, ровно 1 бак израсходуется. Следовательно, путём переливания по другим бакам его можно будет опустошить. Для максимального продвижения колонны это переливание нужно сделать именно на отметке x/n, так как суммарный расход бензина в этом случае уменьшится (будет двигаться меньшее количество мотоциклов).

Таким образом, получаем рекуррентное соотношение:

f(n) = f(n — 1) + x/n, где n >= 1 и f(1) = x

Из этого соотношения находим:

f(n) = x (1 + 1/2 + … + 1/n)

В частности, для n = 50, x = 100 [км]

f(50) = 100 (1 + 1/2 + … + 1/50) ~= 450 [км]

Замечание. Ответ выражается через частичную сумму гармонического ряда, который, как известно, растёт как логарифм:

При больших n имеет смысл рассматривать более простую эквивалентную функцию:

Из неё в частности вытекает, насколько неэффективно увеличивать количество мотоциклов для увеличения максимального пути. Например, при n=50 для увеличения пути в 2 раза нужно:

  • в 2 раза увеличить ёмкость топливного бака у каждого мотоцикла, или
  • в 50 раз увеличить количество байкеров (итого нужно 2500)

--

--

Mathreshka
Mathreshka

Written by Mathreshka

Interesting problems from job interviews and maths contests. For more please visit our telegram channel @mathreshka (https://t.me/mathreshka)

No responses yet