На прошедших выходных прошло ралли «На 7 холмах» — второй этап кубка РАФ по ретро-ралли. Среди прочих развлечений участников ждало дополнительное соревнование на регулярность движения, где средняя скорость задавалась не привычным способом в виде «процентов от ПДД», а была пропорциональна пройденному на секторе расстоянию.
Например, здесь сразу от старта задана средняя скорость, равная 6,67*5=33,35 км/ч, и при проезде каждых 200 метров дистанции она возрастает на 1 км/ч. Название дополнительного соревнования как бы подсказывает, что для точного расчета норматива штурману придется решить несложное дифференциальное уравнение — перепишем формулу из дорожной книги, учитывая, что скорость — это производная от пути:
Как известно, решением этого уравнения будет экспоненциальная функция:
Параметр t0 можно было бы подобрать так, чтобы время проезда старта равнялось нулю, но для того, чтобы перейти от этой формулы к расчету норматива, это делать не нужно — сейчас мы увидим, что время проезда от него не зависит. Возьмем логарифм от левой и правой части решения:
Пусть мы проезжаем точку с расстоянием s1 в момент времени t1, а точку с расстоянием s2 — в момент времени t2. Запишем для них предыдущую формулу, немного ее изменив:
И вычтем одно из второго, при этом t0 в левой части сократится, а разность логарифмов в правой части заменим на логарифм частного:
Тут стоит обратить внимание на то, что время при расчетах выражено в часах, расстояния — в километрах, а скорости — в километрах в час. Если с расстояниями и скоростями все в порядке, то оперировать при расчете норматива часами немного затруднительно — поэтому последнюю формулу можно переписать для расчета норматива, выраженного в секундах:
Приведу пример расчета по этой формуле — пусть точка старта у нас находится на расстоянии 1,5 км от начала сектора, точка финиша — 5 км от начала сектора, а коэффициент k равен 10 (то есть заданная скорость в момент старта равна 15 км/ч, а к финишу возрастает до 50).
Получается, что весь этот участок надо проехать за 7 минут 13 секунд.
Впрочем, красоту этого всего оценило ровно два штурмана с мехматом в анамнезе — при этом один из них ехал нулем :) Перейду к более приземленному вопросу — как такое ехать? Начну с того, что не надо пренебрегать самым простым вариантом — штурман говорит пилоту заданную скорость, а тот выдерживает ее по спидометру. Вообще, отказаться от расчетов и ехать примерно с заданной скоростью — вполне действенный метод проезда «считальных» РД, если штурман не умеет или не хочет считать.
Если штурман едет, используя для расчетов табличку в Excel — то в этом случае не составит труда ввести в нее расчетную формулу с логарифмом. Главная трудность здесь — это переносить расстояние с одометра в компьютер.
Можно ехать в духе «соревнований по кнопкодавству», часто меняя заданную скорость в штурманской программе (типа «Чайного навигатора» или TSD Navigator, с которым и ездят сейчас все призеры ретро-ралли). Например, если на этом же РД менять скорость с шагом 10 км/ч каждый километр, то норматив получится таким:
Вместо 7 минут 13 секунд получилось 8 минут 30 секунд — не очень хорошо, но что, если штурман может жать на кнопки быстрее и меняет заданную скорость каждые 500 метров?
478 секунд, уже лучше — и поверьте мне на слово (ну или можете самостоятельно посчитать в том же Excel), что если штурман — истинный виртуоз своего дела и жмет на кнопки каждые 100 метров, то норматив будет равен 441 секунде, что отличается от идеального времени на 8 секунд.
Ну и наконец — лучше всего найти штурмана, закончившего мехмат, ВМК или физтех, например — так как возможны и новые шутки от организаторов.
Саш, как насчёт того, чтобы добавить такую функцию в TSD?
Стартовую дистанцию, коэффициент и отмену введённого ограничения.
Мне кажется, что это уже лишнее. Можно придумать довольно много «нестандартных» вариантов задания скорости, и я как-то сомневаюсь, что каждый из них надо как-то учитывать в программе (тем более, что вряд ли вот этот конкретный повторят в ближайшее время).