算法知识点整理——第7章 随机化算法

第7章 随机化算法
概率算法只能实期望的结果更有效,它可能遭到最坏的可能性。
概率化算法两次运行的结果可能不一样。




1.主要类型:
数值概率算法、蒙特卡罗算法、拉斯维加斯算法、舍伍德算法


2.数值概率算法
随机投点计算pi值
定积分
解非线性方程组


得到的结果不够精确,但是可以在一个接受范围内。


3.舍伍德算法(确定性算法,不一定能得到解,但是得到的解总是正确的)
想办法破坏最坏情况出现的概率(还是会出现),以提高算法的效率。
当最坏情况与平均情况有着较大的差异时,引入舍伍德算法

数据洗牌 + 确定算法

线性时间选择算法(选择第 k 小元素)
搜索有序表(先随机再顺序)
跳跃表(在链表中增加向前跳跃的指针):
有序表改造为跳跃表,可以提高减少的效率


快排中随机选择基准,而不是一直选择第一个作为基准。


4.蒙特卡罗算法(概率算法,每次都能得到解,但是不一定正确)
得到的是一个确定解,但是不一定正确(常把数值随机化算法归类到这)
正确解的概率依赖于算法的计算时间

主元素(随机产生选一个数,然后判断是不是主元素)
素数测试(Wilson定理、费尔马小定理、二次探测定理)


5.拉斯维加斯算法(确定算法,不一定能得到解,但是得到的解都是正确的)
赌徒的心态,反复押筹码不会亏
给出的答案总是正确的(不会得到不正确的解,但是有时找不到),期望值有界

常把舍伍德算法算法归类于此。

N后问题
整数因子分解


6.三种算法的比较
 
7.随机 VS 随意
随机不等于随意,随机是概率确定的多种的选择
随意是概率不确定的的多种选择

你可能感兴趣的:(算法)