Дам 100 баллов(Питон)
Велосипедисты
Два велосипедиста выехали одновременно из пункта A по одной дороге с различными скоростями uu и vv метров в секунду. Через tt секунд им вдогонку выехал электромобиль и через некоторое время обогнал одного, а затем и другого велосипедиста. При этом интервал между моментами обгона составил dd секунд.
Вы должны написать программу , которая вычислит скорость движения электромобиля.
Формат входных данных
На вход через пробел подаются четыре натуральных числа: uu, vv, tt, dd. При этом u\neq vu
=v; u,v\leq 50u,v≤50; t,d\leq 10000t,d≤10000. Гарантируется, что введенные данные будут таковы, что ответ не превысит 200.
Формат выходных данных
Программа должна вывести одно вещественное число — скорость электромобиля.
Answers & Comments
Ответ:
Код (написан на Go): https://pastebin.com/0pKETCwQ
За качество кода прошу прощения, сам еле разобрался в теме)
Объяснение:
Необходимо узнать пройденное расстояние за t секунд у двух велосипедистов:
s1 = u * t; s2 = v * t (в примере они равны 200 и 160 соответственно)
Также спустя t секунд стартует электромобиль, в этот момент его пройденное расстояние равно нулю.
Из условия знаем, что электромобиль сначала ОБОГНАЛ одного, а затем и другого велосипедиста. Для того, чтобы обогнать двоих, скорость электромобиля должна быть больше максимальной скорости из двух велосипедистов (в примере u > v, значит, скорость электромобиля точно больше u)
Теперь поиграем со скоростью электромобиля -- пусть оно будет равно, допустим, 11:
если посчитать пройденное расстояние электромобиля за каждую секунду и самого отстающего велосипедиста, то можно заметить, что с каждой секундой это расстояние сокращается на разницу их скоростей. Немного алгебры и получим формулу для получения времени, когда электромобиль перегонит одного из велосипедистов:
x = s / (k - v), где s - пройденное расстояние велосипедистом, k - скорость электромобиля и v - скорость велосипедиста
Из условия:
x1 - x2 = d, где d - интервал между моментами обгона, а x1 и x2 - формулы сверху относительно каждого из велосипедистов
А теперь наступает полная алгебра. Дальше я распишу всё на листочке, где все значения будут взяты из примера.
Мы получили два корня, что с ними делать? Во-первых, вспомним, что скорость электромобиля должна быть выше наибольшей скорости двух велосипедистов, а во-вторых, оба корня можно проверить по выше написанной формуле. Если на самом деле равенство выполняется, то это ответ к нашей задаче :)
Вроде ничего не упустил)