有趣的追及問題——貓能追上老鼠嗎?

有趣的追及問題——貓能追上老鼠嗎?

有時,一些看似簡單的問題往往能帶來一些足夠複雜的數學思考。下面就有兩個有趣的問題,乍一看還以為是小學生的智力題或者腦筋急轉彎,但是本質上卻是有一定深度的、有趣的數學問題。

問題一:有一個圓形的操場,四周都是牆壁,無法逾越。操場裡面有一隻老鼠和一隻貓,貓在努力的捉老鼠。如果老鼠和貓的奔跑速度一樣,那麼貓一定能夠追到老鼠嗎?

這道題目乍一看還以為是給孩子出的智力題,但其實仔細思考後就會發現,這道題是很難解決的。題目中除了給出一個圓形邊界和一個同等速度的條件之外,其它一概不知。如果認為貓鼠在博弈的話,那麼博弈過程中的許多條件都沒有給出。所以,如果這道題目能夠給出一個確定的答案,那一定要求是無論另一方採取怎樣的策略,都不影響這個結論。

1、第一種思考

如果沒有牆的存在,速度相同的情況下,貓當然永遠追不上老鼠。現在多了這麼一堵牆,情況到底有什麼不同了呢?聰明的人們經過思考之後,給出了這樣一個分析,如圖1所示。

有趣的追及問題——貓能追上老鼠嗎?

圖1 圓形牆壁內貓鼠追及問題的分析

首先,無論貓在哪個位置,作為捕獵者,它都可以先奔向圓心,老鼠如果原來在圓心的話,肯定避之唯恐不及。之後,貓就有了一個顯然的優勢,那就是貓相對圓心的旋轉角速度肯定大於老鼠的,這從圖1中可以清楚的看出來。因為貓鼠速度相同,不妨設為都是V,那麼顯然處於小半徑處的貓旋轉角速度更快。

於是,貓就可以確保使自己永遠處於圓心與老鼠的連線上。而且,貓這麼做的時候並不需要把全部速度都用來轉圈,從而使得貓仍有餘力把一部分速度分配到徑向上,不斷的擴大自己的半徑。

在貓擴大自己半徑的時候,由於貓、鼠和圓心總是在一條直線上,從而老鼠無法跑進比貓所在處的半徑更小的地方,因此老鼠只能不斷的隨著貓半徑的擴大也擴大自己的半徑。問題是,由於牆壁的存在,半徑是無法永遠擴大下去的,因此,老鼠最終一定會被貓追上!

聽了上述思考,大部分朋友應該都同意這個結論了,貓一定會追上老鼠的。

可是,別急於下結論,上述分析真的沒有問題麼?其實,這裡面有一個最大的問題,那就是雖然貓永遠可以不斷擴大自己的半徑,但這並不意味著可以讓半徑增大到任意大。還記得“之諾悖論”嗎?阿基里斯每一步都在不斷接近烏龜,但是無窮步也無法達到烏龜處。在數學上,收斂的增函數有的是,一直遞增並不意味著可以達到任意大。上述分析並沒有證明貓的半徑最終可以擴大到牆壁處,這就是這個思考最大的瑕疵。

2、第二種思考

既然第一種思考有瑕疵,那麼有沒有可能結論正好是相反的呢?是的,正確的結論正是貓永遠也追不上老鼠,證明過程如下。

有趣的追及問題——貓能追上老鼠嗎?

圖2 老鼠的有效逃脫策略

如圖2所示,假設某一時刻老鼠處於點 r1 處,貓處於點 c1 處。此時老鼠的策略是以速度V沿著垂直於半徑 Or1 且遠離貓的方向奔跑 t1 那麼長的時間,跑到點 r2 。只要 r2 點沒有觸碰到牆壁,那麼在這段時間內貓是無論如何不能抓到老鼠的,因為貓的位置 c1 到點 r2 的距離大於 r1 到 r2 的距離,由於貓鼠速度相同,無論貓怎樣奔跑,都不可能在這段時間抓到老鼠。

同理,r2 處時老鼠的策略也是沿著垂直於半徑 Or2 且遠離貓的方向奔跑 t2 那麼長的時間,跑到 r3 處,以此類推,一直跑下去。【注意,圖2中是把貓的位置一直畫在老鼠到圓心的線段上了,其實無論貓的位置在哪裡,只要老鼠永遠奔向垂直於半徑且遠離貓的方向,在某個ti 時間段內,貓都是無法追到老鼠的,只要老鼠不碰到牆壁。】

下面就是見證奇蹟的時刻了,我們選取 t1=Δt,t2=Δt/2,t3=Δt/3,......,ti=Δt/i,...... 。

我們先來計算第 n-1 步後老鼠與圓心的距離 Orn ,根據勾股定理,得到

有趣的追及問題——貓能追上老鼠嗎?

我們知道,當n趨於無窮時,自然數平方的倒數和是收斂的,它收斂到 π^2/6 。從而我們知道,按照上面的策略,即使跑無窮多步,老鼠與圓心的距離最多也不會超過

有趣的追及問題——貓能追上老鼠嗎?

而Or1是老鼠初始位置的半徑,肯定小於牆壁的半徑,於是我們必然可以選擇足夠小但是有限大的 Δt ,使得即使按照上述策略跑無窮多步,也不會碰到牆壁。

我們再來計算如果老鼠一直跑下去,要跑多長時間?顯然,到第 n 步時,跑過的時間就是這些 ti 求和,顯然等於

有趣的追及問題——貓能追上老鼠嗎?

這個求和更經典了,是著名的調和級數,對於有限大的 Δt 來說,其結果是發散的。也就是說,如果老鼠一直跑下去,需要無窮長的時間。

綜上,第二種思考的結論是正確的,無論貓採取怎樣的策略,只要老鼠按照上面的策略奔跑,那麼在封閉的圓形操場內,貓永遠也抓不到老鼠。請注意,我們對圓形操場的半徑沒有提出任何要求,這意味著

當把貓和老鼠看成兩個點的時候,任意有限大的圓形操場中,貓都抓不到和自己同速運動的老鼠

乍一看是給小孩子出的問題,其結果卻需要進行非常巧妙的構造,而且涉及到無窮級數求和,是不是讓人出乎意料呢?

問題二:在一個圓形池塘中有一隻老鼠,池塘岸邊有一隻不會游泳的貓。這隻老鼠游泳的速度比貓在岸上奔跑的速度要小,但其在岸上奔跑的速度卻大於貓的速度。所以,只要老鼠能夠在貓還沒跑過來的時候游到岸邊,那麼老鼠就得救了。問,貓的奔跑速度要至少是老鼠游泳速度的多少倍,才能確保抓得住老鼠?

這是另一個貓捉老鼠的故事。這個問題的解答同樣也不像是這個問題表面看起來那樣輕鬆。為了解決這個問題,我們先來設定一些必要的參數,假設池塘的半徑為R,老鼠游泳的速度為 1 ,貓奔跑的速度為V(注意,這樣設定後,V本質上是貓的速度與老鼠游泳速度的比值,是個無量綱的量)。

1、當老鼠所處位置的半徑 r

有趣的追及問題——貓能追上老鼠嗎?

圖3 在小圓範圍內老鼠的最佳策略很明確,但是出了這個小圓怎麼辦呢?

我們把半徑小於R/V的圓稱為小圓(圖3中虛線的圓),在小圓內,由於老鼠繞圓心旋轉的角速度大於貓的,因此可以確保處於圖3中所示的位置,且顯然這是在小圓內老鼠的最佳策略。

2、我們的重點是研究出了小圓之後,老鼠應該怎麼辦?也就是圖3中標示為“?”的那部分軌跡到底是怎樣的?

一個最簡單的設想就是,出了小圓後,老鼠就沿著徑向直線奔向池塘岸邊。如果這就是老鼠出了小圓之後的最佳策略的話,我們可以列出貓要想抓到老鼠所需滿足的方程,

有趣的追及問題——貓能追上老鼠嗎?

解得,V=π+1,貓的速度需為老鼠游泳速度的π+1倍。

這會是貓所需要的最低速度麼?這取決於徑向直奔岸邊是否是老鼠在出了小圓之後的最佳選擇。我想,我們還是不要這麼不嚴格的認定這個“徑向直奔”的方案就一定是最佳方案吧。到底什麼是老鼠出了小圓之後的最佳方案,還是讓數學計算來告訴我們更可靠一些。

我們設從內圓開始向外跑的時刻 t=0,並設老鼠跑到距離圓心為 r 處的時候,其徑向速度為 vr ,其垂直於徑向的速度為 vw ,這兩個變量都認為是 r 的函數(這樣在後面計算泛函變分的時候最簡單)。於是有

有趣的追及問題——貓能追上老鼠嗎?

這裡的T表示老鼠跑到圓周處所用的時間。

再設 θ 是從t=0開始到t=T時(也就是老鼠跑到圓周處時)老鼠相對圓心轉過的角度,則

有趣的追及問題——貓能追上老鼠嗎?

於是,貓需要跑過的距離為 (π+θ)*R,所用的時間為 (π+θ)*R/V 。令

有趣的追及問題——貓能追上老鼠嗎?

則 J(vr) 表示的是貓跑到老鼠上岸處與老鼠跑到上岸處的時間差。對老鼠來說,最優的路線是使這個時間差最大。顯然, J(vr) 是關於 vr 的泛函。我們把T和 θ 代入,並注意到

有趣的追及問題——貓能追上老鼠嗎?

這個條件(老鼠的速度為1,且老鼠肯定會全速奔跑的),得到

有趣的追及問題——貓能追上老鼠嗎?

根據泛函的變分原理,要想使這個時間差取到極值的函數 vr 需要滿足泛函的變分為零,即 δJ(vr)=0 ,由於 J(vr) 的積分表達式中沒有顯式出現 vr 的導數,從而這個變分變得很簡單,得到

有趣的追及問題——貓能追上老鼠嗎?

求得

有趣的追及問題——貓能追上老鼠嗎?

上式才是老鼠離開小圓後的最佳策略。初始時刻,r=R/V,此時 vr=0 ,意味著老鼠剛離開小圓的初始時刻不但不應該沿徑向朝岸邊直線奔跑,反而是應該沿著小圓的切線方向奔跑。

把解出來的 vr 代回到 J(vr) 的泛函表達式中,並令 J(vr)=0 ,可以求得貓所需要的最低速度V,只有當貓的速度大於這個V時,老鼠才絕對逃脫不了。這個積分計算不算難,但是略微複雜,計算得到

有趣的追及問題——貓能追上老鼠嗎?

這個J(vr)=0對應著一個一元四次方程,可以求得精確解,但是表達太複雜,懶得計算了。通過數值計算得到 V=4.2331 ,這個數要大於 π+1=4.1416 。也就是說,當貓的速度大於老鼠速度的4.2331倍時,老鼠無論如何都逃不脫啦

3、可能有朋友的好奇心來了,老鼠的這個最佳軌跡到底是什麼樣子的呢?好,我們再來計算一下這個曲線的樣子。

有了前面的結果,再來計算這條曲線就相對容易了,而且最簡潔的方法是利用極座標系,求出 r 和 θ 的關係。

有趣的追及問題——貓能追上老鼠嗎?

而我們知道

有趣的追及問題——貓能追上老鼠嗎?

上式就是計算得到的極座標 r 與 θ 的關係。圖4是V=2和V=4.2331時老鼠的最佳逃跑路線(分別為綠色和紅色)。

有趣的追及問題——貓能追上老鼠嗎?

圖4 老鼠最佳逃跑路線

這裡需要解釋一個問題,那就是圖4中的貓為什麼非要沿著逆時針方向奔跑。如果它順時針奔跑,顯然更容易逮著老鼠啊。這裡面最根本的原因是,老鼠是被追的,它必然根據貓的動作決定自己如何跑。當貓如圖4中所示逆時針追老鼠時,老鼠才會選取圖4中的路線;否則老鼠可以選取對稱的反方向路線。這裡面最關鍵的因素是貓一旦跑起來之後,即使看到了老鼠奔跑的方向,也不能選擇調頭了。因為貓的角速度此時是大於老鼠的角速度的,在角度上,貓離老鼠是越來越近的(這隻有在動圖中才能看得出來,做動圖太麻煩了,沒弄),如果貓選擇調頭,那就意味著老鼠可以立刻改為沿徑向奔跑,等到貓、圓心和老鼠再次在一條直線上之後,老鼠再根據貓的方向重新按照最優策略逃跑即可,這樣對貓肯定更不利。

這個看似講故事的問題,最終的解決需要用到泛函和變分原理,有些類似於求最速降曲線。

以上兩個問題表面上都很有趣、簡單,但背後的數學知識可並不那麼簡單。這兩個問題可以出給中學生甚至小學生,不指望他們獨立回答出正確答案,但通過觀察他們對問題的分析,能大概判斷出其邏輯思維、數學思維的能力和思維的縝密性。


分享到:


相關文章: