演算法導論 第五章 概率分析和隨機演算法

2021-07-04 09:49:09 字數 2178 閱讀 3590

5.1 僱傭問題

僱傭問題類似於在一組隨機排序的陣列中查詢最大值的問題,對於這類問題無法確切的得出其執行效率。但可以根據輸入的概率分布得到平均情況執行時間。對於乙個演算法行為不僅由輸入決定,而且由隨機數生成器產生的數值決定,則稱演算法是隨機的,其執行時間稱為期望執行時間。

5.2指示器隨機變數

由指示器隨機變數計算僱傭問題的期望

5.3 隨機演算法

對於乙個輸入為隨機的問題只可以討論平均情況執行時間,若欲討論其期望執行時間,則可以使用隨機演算法將輸入進行隨機排列。

將乙個輸入轉化為乙個隨機排列陣列,使得產生的排列個數是n!個,且每種排列的概率相同,即都為1/n!,採用兩種方法:

5.4 概率分析和指示器隨機變數的進一步使用

生日悖論:n個人中,兩個人生日落在第i天的概率為1/(n^2),則兩人同一天生日的概率為其期望,值從第一天到第n天有n*(1/(n^2)) = 1/n。至少有兩個人在同一天生日的概率大於1/2,即為不存在同一天生日的排列的補集(1 - p)大於1/2, 則p小於1/2,若採用隨機變數指示器計算其期望c(k, 2)*(1/n)

球與箱子:投球符合幾何分布,第i-1次命中到第i次命中之間的投球次數的期望為1/((b-i+1)/b) = b/(b-i+1),則每個箱子中至少有乙個球的期望為1到b的和為b(ln(b) + o(1))。

特徵序列:共n次實驗,連續出現k次正面向上的期望值為x(k),每種可能的概率為從i到i+k < n出現正面向上的概率,i的值從1到n-k+1,連續出現k次的概率為1/(2^k),則期望x為這些概率的和 = (n - k + 1)/(2^k),特徵序列即:使得期望達到最大時k的值,轉化為求最大值問題,當k = lg(n) 時最大。

習題解答

第五章 概率分析和隨機演算法

hire assistant n best 0 for i 0 to n interview candidate i if candidate is better than candidate best best i hire candidate i最壞情形分析 應聘者質量按出現的次序嚴格遞增 如何...

演算法導論 第五章 隨機演算法

許多隨機演算法通過排列給定輸入陣列來是輸入隨機化。在這裡我們將討論兩種隨機化方法。假設給定乙個陣列a,他包含元素1到n,我們的目標就是構造這個陣列的乙個隨機排列。方法一 為陣列中個每乙個元素a i 賦予乙個隨機優先順序p i 然後根據優先順序對陣列a中的元素進行排序。如初始陣列a 1,2,3,4 且...

演算法導論第五章5 3隨機演算法

5.3 1 marceau教授對引理5.5證明過程中使用的迴圈不變式表示異議。他對在第1次迭代之前迴圈不變式是否為真提出質疑。他得理由是人們可以容易地宣城空陣列不包含0排列。因此空陣列包含0排列的概率應該是0.所以在第1次迭代之前迴圈不變式無效。請改寫過程randomize in place,使其相...