Все мы знаем про безграничную любовь Джона Уика к собакам, но мало кто знает, что он какое-то время был ещё и фермером. Каждое утро он выходил из дома, брал ведро, шёл к реке, набирал воду и относил её в хлев корове. А всё потому, что коров он тоже любил.
И так — ежедневно. Но маршрут каждый раз был другим: просто шёл к какой-то случайной точке к реке, зачёрпывал воду и относил. Получалось что-то типа такого:
Но так как Джон Уик — человек волевой и целеустремлённый, ему стало интересно, какой из всех этих путей — кратчайший. Так какой же? Как его найти?
Самое короткое расстояние между двумя точками — по прямой. Это значит, что в идеальной ситуации Джону нужно было бы просто идти к корове, но тогда он бы не принёс воды. Проблемка. Но есть один способ, который позволит выполнить это условие, пусть и с оговорками.
Для простоты представим, что река — не широкая, а просто линия. Нам этого достаточно, потому что ширина реки в задаче роли не играет, там нужно просто зачерпнуть воды с берега:
Теперь сделаем так: перенесём хлев перпендикулярно вниз на противоположную от реки сторону:
И всё, что нам остаётся сделать, — соединить прямой линией дом и хлев. Точка пересечения реки и будет той точкой, куда нужно идти Джону, чтобы получился кратчайший путь:
Всё дело в том, что этот путь будет одинаковым и при ходьбе по прямой, и если зачерпнуть воды и пойти в хлев от берега — пройденное расстояние будет одним и тем же: