一道与图形和空间有关的智力题
狐狸与鸭子
一只狐狸在追一只鸭子,鸭子逃到了一个正圆形池塘的圆心位置.狐狸不会游泳,鸭子也不能在水面上起飞(这是一只有残疾的鸭子).狐狸的速度是鸭子的4倍.假设鸭子和狐狸分别遵循着最优的逃跑和追逐策略,请问:鸭子能不能安全地游到池塘边并起飞?如何能,怎么样才能做到?

解决方案 »

  1.   

    理论上是可以的。鸭子和狐狸分别遵循着最优的逃跑和追逐策略设鸭子的速度是v,则狐狸的速度是4v,圆的半径是r那么也就是说,鸭子在离圆心r/4之内,围着圆心转的话,要比狐狸快。这样只要鸭子在离圆心r/4的圆上正好和狐狸在相反的方向即可。鸭子这时向着狐狸的正反方向跑,鸭子离岸的距离是3r/4,狐狸离鸭子上岸的距离是 rπ
    鸭子需要的时间是 3r/4v  狐狸需要的时间是 rπ/4v很显然 π要比3大。鸭子先到岸。所以到手的鸭子跑了。
      

  2.   

    应该不行吧,鸭子要沿半径游才最快,那就是短R,而狐狸最长是PI*R,3.14159265358979323846264338327950288........................<4
      

  3.   

    当鸭子离开原点O 1/4 r的时候,狐狸已经走了r的路程,
    粗略计算一下,
    周长为3.14r,那么显然,此时狐狸已经走了超过1/4圆,鸭子与狐狸的距离不超过r鸭子不可能离开狐狸超过半径的距离
      

  4.   

    呵呵,是我搞错了,我把Pi理解成Pi=3.14r了,实际上是Pi=3.14*(2r),所以导致了
    鸭子不可能离开狐狸超过半径的距离
    这样的谬论,见笑了:(
    这样看来,狐狸的策略只有朝着一个方向绕着池塘跑,鸭子的策略是尽可能抛离狐狸,最后走出的路线应该是一条螺线,
    试算计算鸭子能否抛离狐狸:设狐狸起点在x轴的负的那一边,当鸭子离原点1/4r的时候,狐狸跑了r,这时相当于园向x轴正方向平移了1/4r,但是狐狸跑了不到1/4(只有1/2Pi)园,所以鸭子已经离狐狸超过了最开始的r,所以鸭子是有可能抛离狐狸,最后登岸起飞的
    至于代码,算法很简单,就是计算麻烦一点,先设鸭子最小单位的移动值d(可以用浮点数),狐狸的移动距离为4d,
    鸭子在(0,0)坐标,狐狸在(-r,0)
    鸭子方向为0度,循环:
    根据当前坐标及角度计算它们各自的新位置,
    判断鸭子是否已经登岸,如果是结束
    判断鸭子是否应该准备登岸,
    如果可以,就将原点和鸭子坐标构成的直线与x轴的夹角作为鸭子的方向角度
    如果不能,就将狐狸和鸭子坐标构成的直线与x轴的夹角作为鸭子的方向角度
    继续循环