GitHub
Задачи с собеседований: лиса и утка
Предположив, что утка и лиса абсолютно разумны, как утке достичь берега и улететь?
Утка, преследуемая лисой, спасается в центре круглого пруда радиусом r. Утка может взлететь с земли, но не с воды. Лиса же не умеет плавать. Также, лиса в 4 раза быстрее утки. Предположив, что утка и лиса абсолютно разумны, как утке достичь берега и улететь?
Лиса и утка: объяснение №1
Утка сдвигается в сторону противоположную лисе. Теперь лиса должна начать двигаться, иначе она гарантированно проиграет. Поскольку картинка симметрична, то лисе все равно в какую сторону двигаться. Предположим, что она решила двигаться против часовой стрелки. Как только лиса сдвигается, утка поворачивается, так чтобы быть всегда хвостом к лисе и тем самым двигаться от нее с максимальной скоростью. Лиса продолжает движение по окружности, Утка все время поворачивается от нее. В итоге — Лиса проходит дугу окружности, Утка движется по спирали из центра к окружности.
Ключевой вопрос, на который надо ответить — действительно ли длина дуги Лисы более чем в 4 раза превышает длину спирали Утки.
Лиса движется с постоянной максимальной скоростью вокруг озера.
Длина дуги = 4ut, где u — скорость Утки, t — прошедшее время Угол в радианах, на который она сместилась = lambda=4ut/pi
Получается треугольник со сторонами r (радиус пруда), ut (смещение утки) и углом pi-lambda.
Угол alpha (между вертикальной линией и направлением от Утки к Лисе) = arcsos[(ut+rcos lambda) / sqrt (r^2 + u^2t^2+2utcos lambda)]
Отсюда можно подсчитать радиальную скорость Утки по направлению к краю пруда
ur=(ut+r cos (4t/pi)) / sqrt (r^2+u^2t^2 + 2t cos (4t/pi))
Понятно, что радиально Утка должна проплыть расстояние r, таким образом интеграл по t от ur = r.
Лиса и утка: объяснение №2
Утка наматывает спираль держа лису всё время в диаметрально противоположной точке. Учитывая разность в линейных скоростях — наступит момент когда их угловые скорости сравняются. При этом утка будет уже довольно близко к берегу, а лиса всё ещё в диаметрально противоположной точке. Вот в этот момент утке надо рвать к берегу