随机算法
|| 引言
分治、动态规划、贪心法、回溯和分支限界等算法的每一步计算都是确定的,但是在大多数情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择省时,因此随机算法可以在很大程度上降低算法的复杂性。随机算法的基本特征是对所求解问题的同一实例用同一随机算法求解两次可能得到完全不同的效果(所需时间或者计算结果)。
举例说明
|| 数值随机算法
- 用随机投点法计算π值
- 计算定积分
|| 舍伍德算法
|| 拉斯维加斯算法
|| 蒙特卡罗算法
|| 例题
(1)
RandomBit()产生0、1随机数,每个概率为50%
现在要输出8个数据可以用RandomBit()产生三个随机
数,即X1=RandomBit()、X2=RandomBit()、
X3=RandomBit(),输出4*X1+2*X2+X3+1即可
(2)
int Random8()
{
int X1 = RandomBit();
int X2 = RandomBit();
int X3 = RandomBit();
return (4*X1+2*X2+X3+1);
}