概率算法:
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
艾玛 好多 好复杂的样纸 先放链接 改天在看