演算法導論 隨機演算法

2021-08-18 09:32:40 字數 706 閱讀 2554

一.概率分布       

對於有些問題本身是屬於概率問題,如僱傭問題:

對於此類問題,我們需要利用概率分析來得到演算法的執行時間,有時也用來分析其他的量。例如,僱傭問題中的費用問題也需要結合概率分析來計算得到。

為了使用概率分析,我們必須使用或者假設已知關於輸入的概率分布,然後通過分析該演算法計算出平均情況下的執行時間。當所有可能的輸入分布均取平均值時,我們稱其為平均情況執行時間

為了利用概率分析來分析演算法,我們需要了解輸入分布的相關資訊。但是在很多情況下,我們對輸入分布了解甚少,此時我們利用隨機演算法來進行演算法分析。

二.隨機演算法

很多隨機演算法通過使輸入隨機化來實現,書中介紹了兩種隨機數組的構造方法:

1.隨機排列陣列       

為陣列a[i]賦乙個隨機的優先順序p[i],然後依據p[i]對a[i]進行排序,即可得到隨機數組;

2.原址排列給定陣列



演算法導論 2 隨機演算法習題選

演算法導論裡的習題,有很多都是經典,不少題目都做不出來,到網路上找答案,再自己慢慢理解,這樣的過程使我受益。我精選了一部分習題,寫出思路作為存檔以供查閱。從這篇博文開始,我嘗試使用mathjax來顯示公式,而不是之前若干篇博文中使用,如果你的瀏覽有什麼問題,請告訴我。前兩題是演算法入門一節挑的,太少...

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

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

演算法導論筆記 05隨機問題

4 用random 0,1 實現random a,b 這道題的實現思路 這個題目相當於在能隨機生成 0,1 的前提下,要求隨機生成 n b a 1 個整數。1 把要生成的數標記為 a,a 1,a 2,b a 1,b 1,b 2 取最小的 m,使得2 m n 3 通過隨機生成 0,1 的函式生成乙個 ...