随机数算法

如何获取随机数

采用线性同余算法获取随机数。a(0)=d称为种子,a(n)=(ba(n-1)+c)mod m
b经常取质数,m越大越好。为了避免每次的随机数序列产生的都相同,一般采用当前时间为种子。

随机算法的用途

随机算法主要被用于快速计算定积分中,同样可以用于计算圆周率。

两大赌城算法:

下面这两种算法都不是具体算法,而是指出了一些算法的抽象特征。

LasVegas算法:

不断产生随机数,试图得到正确结果,直到得到正确结果或者达到设定的步数。
适用于迄今没有有效解法的问题,通过不断尝试,试图产生有效解。

蒙特卡罗法

如果说LasVegas法是不一定能给出解,但是给出的解一定正确。则蒙特卡罗法正好相反,一定可以给出解,但是不一定保证正确。比如说篮子里闭眼拿苹果找最大苹果的问题,尝试过的苹果越多,则拿到最大的苹果的概率越大。

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