「一隻兔子在原點 O,洞穴在正北 20 米的 B 點;一隻狼位於兔子正東 33 米的 A 點。狼的速度是兔子的兩倍,且始終朝著兔子當前位置直線奔跑。請問:兔子能否在狼追上前鑽進洞穴?」
這是一個經典的追逐曲線問題。網路上眾說紛紜,有人認為狼必追上,也有人引用「距離 100 碼、洞穴 60 碼」的類似題目作為反例。為了給出確切答案,我們可以用計算機模擬——無需求解複雜的微分方程,只需將時間離散化,逐步推進位置即可。
建立平面直角坐標系:兔子起始於 (0,0),沿 y 軸正向匀速前進;狼起始於 (33,0),每一步都朝「當前兔子位置」方向前進兩倍步長。程式碼採用遞推算法:
NextT():兔子單純沿 y 軸遞增 Td(本例 0.1 m)。NextL():狼根據與兔子的相對向量,將步長 Ld = 2*Td 分解為 x、y 分量,向左上方移動。dist() >= Td:當雙方距離小於兔子單步長度時視為「被追上」,終止模擬。double Td=0.1, Ld=0.2; // 兔子/狼單步長
Tx=0; Ty=0; // 兔子初始座標
Lx=33; Ly=0; // 狼初始座標
while (dist() >= Td) {
NextL(); // 狼先動(基於兔子「當前」位置)
NextT(); // 兔再動
printf("兔子:(%lf,%lf) 狼:(%lf,%lf)\n", Tx,Ty,Lx,Ly);
}
輸出顯示:當兔子跑到 y ≈ 21.9 m 時,狼座標約為 (0.0005, 21.7665),雙方距離已小於 0.1 m,判定為「追上」。此時兔子已超過洞穴位置(20 m)約 1.9 米。換句話說,兔子在到達洞口前就被狼追上了。
若將洞穴距離改為 22 m,兔子便能逃脫。同理,經典的「100 碼追 60 碼」題目中,臨界逃脫距離約為 66.7 碼,60 碼洞穴同樣無法倖免。
計算機模擬證明:速度比 2:1、初始橫向距離 33 m 時,臨界逃脫距離約 22 m。這與解析解(追逐曲線積分)吻合。對於同類問題,只需調整初始參數與速度比,即可快速驗證結果,避免繁複推導。