Напомню популярную школьную задачу на сообразительность и связанный с ней исторический анекдот:
Из пункта А в пункт В со скоростью 60 км/час отправляется паровоз. На встречу ему из пункта В отправляется другой паровоз со скоростью 40 км/час. Одновременно с паровозами из пункта А в направлении пункта В вылетает стриж со скоростью 100 км/час.
В некоторых вариантах летает муха. Какая муха? Как муха может обогнать паровоз? Мы тут серьезной наукой занимаемся.
Долетев до второго паровоза стриж мгновенно разворачивается и летит навстречу первому паровозу. Встретив первый паровоз стриж снова мгновенно разворачивается и летит навстречу второму паровозу.
Таким образом стриж летает между паровозами, пока они не встретятся.
Хотя обычно это упускается из виду, будем считать, что паровозы движутся по параллельным путям. Поэтому их встреча не заканчивается крушением и они продолжают движение в пункты В и А соответственно. Ни один паровоз при решении задачи не пострадал.
Итак, вопрос: сколько километров пролетит стриж?
Если вы, мой дорогой Читатель, не встречали эту задачу раньше, попробуйте свои силы прямо сейчас. Она предполагает два решения. Простое, догадавшись до которого, можно получить ответ в уме за несколько секунд. Ниже в статье оно приведено. Сложное решение состоит в том, чтобы вычислить длину каждого из отрезков, которые пролетает стриж между паровозами, а затем просуммировать.
С точки зрения абстрактной математики, таких отрезков бесконечное количество. Поэтому для сложного решения нам потребуется просуммировать бесконечный ряд.
Теперь перейдем к историческому анекдоту. Он так же весьма широко известен. Великому математику Джону фон Нейману задали эту задачу. Он практически сразу дал правильный ответ. Когда его спросили, как ему удалось так быстро найти решение, он ответил: "Я просуммировал ряд"!
Слабо пройти по пути Джона?
Как правило, люди, решающую эту задачу, делятся на две большие группы. Самые умные находят простой и быстрый путь к решению. Самые нетерпеливые, не найдя короткий путь самостоятельно, ищут ответ в Интернет. И те, и другие, возможно, слышали про анекдот с фон Нейманом.
В этой статье мы пойдем особым, третьим путем! Мы не просто восхитимся остротой гениального ума Джона, мы воспроизведем его решение. Разумеется, фон Нейман все равно даст нам 100 очков вперед. Он-то решил задачу без чернил и бумаги!
Надеюсь, никого не оскорблю, высказав гипотезу о том, что наши с вами умы, дорогой Читатель, несколько уступают, когда речь идет о математике, уму гениального ученого. Поэтому нам не зазорно воспользоваться пером, чтобы сделать пару заметок в тетрадке.
Итак, цель моей статьи - решить задачу сложным способом.
Слышу вопросы из зала, зачем решать сложно, если есть простой способ? Дело в том, что математика - это не только гениальные догадки и озарения. По большей части математика - это вычисления различной степени сложности. Математик, не овладевший техникой вычислений, не способный довести сложный расчет до верного ответа, по сути, плохой специалист. Очень часто простого способа нет.
Простой и элегантный способ решения данной задачи состоит в том, чтобы найти время, в течение которого летает стриж. Он летает, пока паровозы не встретились. Но они встретятся через 1 час, т.к. скорость сближения равна 40+60 = 100 км/час, а расстояние между пунктами А и В 100 км. За это время стриж пролетит те же 100 км., т.к. его скорость составляет 100 км/час.
Сложным способом будем решать задачу в общем случае. Введем обозначения:
S1 - расстояние между пунктами А и В.
p, q - скорости первого и второго паровозов соответственно.
v - скорость стрижа, v > p, v > q (стриж быстрее паровозов).
Будем считать, что паровозы и стриж начинают движение в момент времени t = 0.
Скорость сближения стрижа со вторым паровозом (v+q), поэтому встреча произойдет в момент времени
t1 = S1 / (v+q)
За это время поезда пройдут путь
dS1 = (p + q) * t1
Следовательно, в этот момент расстояние между поездами равно
S2 = S1 - dS1 = S1 - (p + q) * (S1 / (v + q)) = S1 * ((v - p)/(v + q))
После мгновенного разворота стриж летит обратно в направлении первого паровоза. Скорость сближения равна (v + p), поэтому встреча произойдет через
t2 = S2 / (v + p)
За это время поезда продвинутся еще на
dS2 = (p + q) * t2
Поэтому в момент встречи с первым паровозом расстояние между поездами равно
S3 = S2 - dS2 = S2 - (p + q)*(S2 / (v + p))
Подставив в эту формулу уже известное выражение для S2 после упрощения найдем, что
S3 = S1 * ((v - p) / (v + p)) * ((v - q) / (v + q))
Обозначим множитель при S1 через k. Тогда
формула №1: S3 = k * S1
Заметим, что 0 < k < 1.
Встреча стрижа с первым паровозом произойдет в момент времени
T1 = t1 + t2 = S1 / (v+q) + S2 / (v + p)
Подставив вместо S2 его выражение через S1 после коротких вычислений получим выражение:
T1 = S1 * 2v / ((v + p) * (v + q))
Тогда стриж за это время пролетит путь
L1 = S1 * (2v * v) / ((v + p) * (v + q))
Обозначим множитель при S1 через m.
формула №2: L1 = m * S1
Итак, стриж начал полет, сразу обогнал 1-й паровоз, долетел до 2-го паровоза и вернулся назад к 1-му. Назовем такой маневр "этапом". Все дальнейшее движение стрижа можно представить себе, как сумму подобных этапов. Например, на втором этапе стриж снова обгоняет 1-й паровоз, летит до встречи со 2-м и опять возвращается к 1-му. Грубо говоря, на каждом этапе стриж летает "туда-сюда" один раз.
Чем отличаются друг от друга два последовательных этапа? Они отличаются расстоянием между поездами. На старте задачи расстояние между поездами было S1. На старте второго этапа расстояние между поездами сократилось до S3. На старте третьего этапа расстояние между поездами будет S5.
Вспоминаем формулу №1 и получаем:
S3 = k * S1
S5 = k * S3 = k * k * S1
S7 = k * k * k * S1
...
Т.е. последовательность {S1, S3, S5,...} представляет из себя бесконечную геометрическую прогрессию со знаменателем, меньшим 1.
На каждом этапе стриж пролетает отрезки пути, равные по длине L1, L3, L5, … Нам требуется найти сумму всех Li (индексы нечетные). Но мы знаем по формуле №2, что
L1 = m * S1
Аналогично L3 = m * S3. Ведь на втором этапе все условия задачи сохраняются, просто начальное расстояние между поездами теперь не S1, а S3! Аналогично L5 = m * S5 и т.д.
Таким образом,
СУММА(L1, L3, L5, …) = m * СУММА(S1, S3, S5,...)
Но, как мы видели только что, сумма {Si} не что иное, как сумма бесконечной убывающей геометрической прогрессии:
СУММА(S1, S3, S5,...) = S1 * (1 + k + k^2 + k^3 + k^4 + …)
Воспользовавшись формулой для суммы прогрессии и двумя предыдущими наблюдениями получаем:
СУММА(L1, L3, L5, …) = m * S1 / (1 - k)
Вспоминаем, что
k = ((v - p) / (v + p)) * ((v - q) / (v + q))
m = 2v^2 / ((v + p) * (v + q))
Тогда
1 - k = 2v * (p + q) / ((v + p) * (v + q))
А искомая сумма {Li}, расстояние, которое пролетит стриж, равно
L = СУММА({Li}) = S1 * (2v^2 / ((v + p) * (v + q))) * (((v + p) * (v + q)) / 2v * (p + q)) = v * (S1 / (p + q))
Т.е. стриж пролетит путь, равный произведению его скорости на время полета. УРА!
P.S. Неужели фон Нейман действительно подсчитал все это в уме?!