返回题库

抓潜艇

Catching the Submarine

专题
Strategy / 策略
难度
L6

题目详情

一架飞机在海面上方要抓一艘水下潜艇。

潜艇匀速直线运动,方向未知但保持不变。飞机只能用一次“人肉雷达”获知潜艇在某时刻的精确位置。飞机速度是潜艇速度的 2 倍。

只要飞机在某时刻飞到潜艇正上方,就能把潜艇吸上来。

问:飞机如何保证抓到潜艇?大致需要多久?

提示:潜艇可能位置的轨迹是一个随时间扩张的圆。

An aircraft hovers above sea, trying to catch a submarine moving with a constant velocity under the sea. The submarine is completely invisible, but using a human radar only once, the aircraft knows the exact location of submarine under the sea. The direction of submarine is unknown, but constant. The aircraft can move at twice the speed of submarine. As soon as the aircraft is just vertically above the submarine, Aircrafet can magnetically pick it up. How does the aircraft catch the submarine? How much time ill it take?

Hint

The locus of submarine from its spotted location is a circle of radius (speed of sub) * (time passed). We only need to move around this locus for some time.

解析

设潜艇速度为 ss,飞机速度为 2s2s,初始测得位置为圆心。经过时间 tt 后,潜艇可能位置在半径 stst 的圆周上。

飞机策略:先用一段时间沿某条半径方向前进,使自己进入“追踪圆周”的合适半径,然后以径向速度 ss 向外螺旋搜索(螺旋的切向速度由剩余速度保证),这样在搜索到某一圈时必与潜艇的实际位置相遇。

该策略可在有限时间内保证捕获,且捕获时间与初始距离成正比(常数因子由速度比决定)。


Original Explanation

Solution

Let speed of plane be 2s, submarine: s, original distance d Locus of submarine after time t is circle of radius s * t centered at original location of submarine. Thus the plane moves 2/3 distance towards submarine, and then spirals out by increasing radius with speed 's'. The submarine is caught after one round.

For General case, with speeds p > s, see Palak's Answer:

Let Op, Os be the initial positions of the plane and the submarine, resp. For time t0 = d/(s+p), the plane will move towards Os in the OpOs direction. After that, with Os as the origin, the plane will maintain a constant velocity of s along the radial direction. Thus, at an angle theta from OpOs, tangential displacement in time dt is sqrt(p^2-s^2) * dt = r * d(theta) = s * t * d(theta) => dt/t = s/sqrt(p^2-s^2) * d(theta). Integrating t from t0 to tf, and theta from 0 to 2 * pi, we get tf = t0 * exp[2 * pi * s/sqrt(p^2-s^2)] = [d/(s+p)] * exp[2 * pi * s/sqrt(p^2-s^2)]. Note that the plane can be vertically above the submarine any time between t0 and tf, depending on the direction theta of the velocity of the submarine wrt OpOs, thus making tf the worst case time.