概率算法


概率算法:


1. 隨機數。 

應用: 拋硬幣,統計頻率。


2. 數值概率算法。

應用: 隨機投點,計算π值。

隨機投點,計算定積分。

平均值法,計算定積分。

解非線性方程組。


常用於 數值問題的求解。 往往求的是  近似解 。近似解的精度隨計算時間的增加而不斷提高。


3.舍伍德算法:


排序算法中,樞軸元素,選用擬中位數  可以保證 最壞情況下用線性時間 完成麼

採用劃分數組第一個元素作爲劃分基準的話,最壞情況下需要要O(n^2) , 平均較好。。。。

舍伍德選擇算法則隨機地選擇一個數組元素作爲劃分基準,這樣既保證算法的線性時間平均性能,又避免了計算擬中位數的麻煩。

例子詳見:

http://blog.csdn.net/liufeng_king/article/details/9038771

另,如果事先把要排序的元素打亂,就不需要 舍伍德 了。

就是 所謂的 隨機洗牌。 可看下面的代碼:

隨機洗牌算法:  http://blog.chinaunix.net/uid-20775243-id-2555001.html


另,  0045算法筆記——【隨機化算法】舍伍德隨機化思想搜索有序表  


舍伍德改進快速排序 http://www.2cto.com/kf/201305/212296.html

舍伍德算法總能求得問題的一個解,且所求得的解總是正確的。

當一個算法的最壞複雜度 與 平均複雜度 相差較大時,可在 其中 引入 隨機性,將其改造成一個 舍伍德算法, 用以消除 好壞實例間的差別。

 

4.拉斯維加斯算法。


該算法不會得到不正確的解。 but' 它 可能找不到解。


應用 :n後 問題

之前回溯法是 系統性的搜索棋盤,找一個合適的位置。

採用拉斯維加斯算法,可以給每個皇后 隨機性的選擇一個位置,然後,判斷這個皇后可否放在此(剪枝?)

此方法,一旦發現一個皇后無法正確放置,就要重新開始。

改進: 選取 m 個皇后 隨機放置, 後面的 利用 回溯法 找合適位置。  其中,m越大,後面回溯所需時間越小,失敗概率越大。


5. 蒙特卡羅算法。 


用於求解問題的【準確解】。 但 無法 有效 判斷 該解 是否肯定正確。

這個寫的不錯 http://hi.baidu.com/yangkunarsenal/item/d52895f5d599a70984d27887


在圍棋中的應用   http://blog.csdn.net/lanphaday/article/details/2387034

http://blog.tianya.cn/blogger/post_show.asp?BlogID=1992967&PostID=17179181  

艾瑪 好多 好複雜的樣紙  先放鏈接 改天在看

發佈了145 篇原創文章 · 獲贊 47 · 訪問量 118萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章