一道与图形和空间有关的智力题
狐狸与鸭子
一只狐狸在追一只鸭子,鸭子逃到了一个正圆形池塘的圆心位置.狐狸不会游泳,鸭子也不能在水面上起飞(这是一只有残疾的鸭子).狐狸的速度是鸭子的4倍.假设鸭子和狐狸分别遵循着最优的逃跑和追逐策略,请问:鸭子能不能安全地游到池塘边并起飞?如何能,怎么样才能做到?
狐狸与鸭子
一只狐狸在追一只鸭子,鸭子逃到了一个正圆形池塘的圆心位置.狐狸不会游泳,鸭子也不能在水面上起飞(这是一只有残疾的鸭子).狐狸的速度是鸭子的4倍.假设鸭子和狐狸分别遵循着最优的逃跑和追逐策略,请问:鸭子能不能安全地游到池塘边并起飞?如何能,怎么样才能做到?
鸭子需要的时间是 3r/4v 狐狸需要的时间是 rπ/4v很显然 π要比3大。鸭子先到岸。所以到手的鸭子跑了。
粗略计算一下,
周长为3.14r,那么显然,此时狐狸已经走了超过1/4圆,鸭子与狐狸的距离不超过r鸭子不可能离开狐狸超过半径的距离
鸭子不可能离开狐狸超过半径的距离
这样的谬论,见笑了:(
这样看来,狐狸的策略只有朝着一个方向绕着池塘跑,鸭子的策略是尽可能抛离狐狸,最后走出的路线应该是一条螺线,
试算计算鸭子能否抛离狐狸:设狐狸起点在x轴的负的那一边,当鸭子离原点1/4r的时候,狐狸跑了r,这时相当于园向x轴正方向平移了1/4r,但是狐狸跑了不到1/4(只有1/2Pi)园,所以鸭子已经离狐狸超过了最开始的r,所以鸭子是有可能抛离狐狸,最后登岸起飞的
至于代码,算法很简单,就是计算麻烦一点,先设鸭子最小单位的移动值d(可以用浮点数),狐狸的移动距离为4d,
鸭子在(0,0)坐标,狐狸在(-r,0)
鸭子方向为0度,循环:
根据当前坐标及角度计算它们各自的新位置,
判断鸭子是否已经登岸,如果是结束
判断鸭子是否应该准备登岸,
如果可以,就将原点和鸭子坐标构成的直线与x轴的夹角作为鸭子的方向角度
如果不能,就将狐狸和鸭子坐标构成的直线与x轴的夹角作为鸭子的方向角度
继续循环