設A [1..n]是一個包含n個distinct
數字的數組。如果我和A [i]> A [j],那麼這個對(i,j)被稱爲A的反演。(關於反演的更多內容,請參見問題2-4)。假設選擇A的每個元素隨機地,獨立地且均勻地從1到n的範圍。使用指標隨機變量來計算預期的反演次數。預期的反演次數 - 從簡介到科爾算法
的問題是從鍛鍊5.2-5在介紹由Cormen到算法。這裏是我的遞歸求解:
假設x(i)是a [1..i]中的倒數的個數,E(i)是x(i)的期望值,則E(i +1)可以計算如下:
圖片我們有i+1
的位置來放置所有的數字,如果我們把i + 1放在第一個位置上,那麼x(i + 1)= i + x(i);如果我們在第二個位置上放置i + 1,則x(i + 1)= i-1 + x(i),...,所以E(i + 1)= 1 /(i + 1)* sum(k)+ E(i),其中k = [0,i]。最後我們得到E(i + 1)= i/2 + E(i)。因爲我們知道E(2)= 0.5,所以遞歸地得到:E(n)=(n-1 + n-2 + ... + 2)/ 2 + 0.5 = n *(n-1)/4。
雖然扣除上述似乎是正確的,但我仍然不是很肯定。所以我在這裏分享。
如果有什麼問題,請糾正我。
請注意,這本書的第二版中的問題是不同的。 –