Кортежи и множества · 20 из 20
Дрон догоняет невесту
Оператор свадьбы запускает дрон с края поляны, а невеста в это время идёт по аллее. Дрон летит прямо на неё — но она идёт, и он каждую секунду доворачивает. Оператору надо знать заранее, догонит ли дрон невесту до конца аллеи, и если догонит — на какой секунде: к этому моменту должна заиграть музыка.
Что сделать
Просчитайте погоню по секундам: невеста делает шаг по аллее, дрон летит прямо на неё. Скажите, где был дрон и на какой секунде догнал.
Что приходит
dron— где дрон в начале: кортеж(x, y)put— где невеста после каждой секунды: список кортежей(x, y)skorost— сколько метров дрон пролетает за секунду
Что вернуть
Кортеж (trek, sekunda): где был дрон — в начале и после каждой секунды — и на какой секунде догнал, или None.
Допишите функцию pogonya в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Дрон в (0, 0), летит 4 м/с; невеста за три секунды проходит (10, 0), (10, 1), (10, 2). Первая секунда: до неё 10 м — дрон пролетел 4, он в (4, 0). Вторая: до (10, 1) около 6 м — ещё 4 метра в её сторону. Третья: до неё 2,45 м — меньше секунды полёта, дрон догнал.
pogonya((0, 0), [(10, 0), (10, 1), (10, 2)], 4)
([(0, 0), (4.0, 0.0), (7.946, 0.658), (10, 2)], 3)
Каждую секунду, по порядку точек put (первая — первая секунда):
- невеста переходит в следующую точку;
- дрон смотрит, сколько до неё по прямой. Не больше skorost — он догоняет: его точка — её точка, погоня кончается, секунда — номер этой секунды (первая — 1);
- иначе дрон пролетает skorost метров прямо на неё.
trek — список кортежей: точка в начале и после каждой секунды до поимки включительно; каждое число — round(…, 3), а считается без округления. Не догнал до конца put — секунда None. Пустой put — trek из одной начальной точки и None.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.