1. 程式人生 > >隨機遊走的期望距離

隨機遊走的期望距離

 隨機遊走問題是說,假如你每次隨機選擇一個方向邁出一個單位的長度,那麼n次行動之後你離原點平均有多遠(即離原點距離的期望值)。有趣的是,這個問題的二維情況反而比一維情況更加簡單,關鍵就是一維情況下的絕對值符號無法開啟來。先拿一維情況來說,多數人第一反應肯定是,平均距離應該是0,因為向左走和向右走的機率是一樣的。確實,原點兩邊的情況是對稱的,最終座標的平均值應該是0才對;但我們這裡考慮的是距離,它需要加上一個絕對值的符號,期望顯然是一個比0大的數。如果我們做p次實驗,那麼我們要求的平均距離D就應該是

  

(在所有的情況下,完全有一種可能d>0,所以D肯定>0)

    其中d的值隨機取1或者-1。這裡的絕對值符號是一個打不破的堅冰,它讓處於不同絕對值符號內的d值無法互相抵消。但是,當同樣的問題擴充套件到二維時,情況有了很大的改變。我們把每一步的路徑投射到X軸和Y軸上,利用勾股定理我們可以求出離原點的距離的平方R^2的值:

  

    一旦把平方展開後,有趣的事情出現了:這些X值和Y值都是有正有負均勻分佈的,因此當實驗次數p充分大時,除了那幾個平方項以外,其它的都抵消了。最後呢,式子就變成了

  

    於是呢,就有平均距離R=sqrt(n) (準確的說是均方根距離)。我們得出,在二維平面內隨機選擇方向走一個單位的長度,則n步之後離出發點的平均距離為根號n。這是一個很美妙的結論。


如果用程式做的話,可以考慮用dp做

 f[2n][2n][n]
開一個數據進行動態規劃
f[i][j][k] = sum(f[i-1][j][k-1], f[i][j-1][k-1], f[i+1][j][k-1], f[i][j+1][k-1])

計算走k步,達到座標點的次數