Информатика, вопрос задал georgijschtscholokov , 6 лет назад

Дам 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.

Формат выходных данных
Программа должна вывести одно вещественное число — скорость электромобиля.

Ответы на вопрос

Ответил youmakemesad25
2

Ответ:

Код (написан на 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 - формулы сверху относительно каждого из велосипедистов

А теперь наступает полная алгебра. Дальше я распишу всё на листочке, где все значения будут взяты из примера.

Мы получили два корня, что с ними делать? Во-первых, вспомним, что скорость электромобиля должна быть выше наибольшей скорости двух велосипедистов, а во-вторых, оба корня можно проверить по выше написанной формуле. Если на самом деле равенство выполняется, то это ответ к нашей задаче :)

Вроде ничего не упустил)

Приложения:

georgijschtscholokov: а какой язык
youmakemesad25: Go
Новые вопросы