概率算法

标签: 算法
951人阅读 评论(0) 收藏 举报

概率算法也叫随机化算法。分治算法、贪心算法、动态规划算法、回溯法、分治界限算法这些算法的每一计算步骤都是确定的,概率算法则允许算法在执行过程中随机地选择下一个计算步骤。在很多情况下,算法在执行过程中面临选择时,随机性选择比最优选择省时,因此概率算法可以在很大程度上降低算法的复杂度。
大致可分4类:

  1. 数值随机化算法
  2. 蒙特卡罗(Monte Carlo)算法
  3. 拉斯维加斯(Las Vegas)算法
  4. 舍伍德(Sherwood)算法

各算法特点对比:

1.数值随机化算法

用于数值计算,求得的往往是近似解,比如通过概率投点的思想计算圆周率、计算定积分.

这里写图片描述

如图,向边长为1的正方形内随机投n个点,记落入圆内的点的个数为k,根据几何概型,k/n近似等于圆的面积除以正方形对面积。只计算第一象限,1/4*pi*1*1除以1*1近似等于k/n,pi=4*k/n
程序验证:

#include <iostream>
#include <ctime>
#include <math.h>
using namespace std;
int main(){
   srand((unsigned)time(0));
   double x,y;

   int k=0,n=1000000;
   for(int i=0;i<n;i++){
      x=rand()/(double)(RAND_MAX);     //随机数x
      y=rand()/(double)(RAND_MAX);    //随机数y x、y在0到1之间
      if((pow(x,2)+pow(y,2))<=1) k++; 

   }

    cout<<(double)4*k/n<<endl;
}

n等于100:
这里写图片描述

n等于1000:
这里写图片描述
n等于100000000
这里写图片描述
可以看到,n约大pi的值越精确.当n等于1亿的时候,可以稳定到3.141
可以用相同的方法计算定积分.

2.蒙特卡罗(Monte Carlo)算法

能求得问题的一个解,但是这个解未必正确

3.拉斯维加斯(Las Vegas)算法

要么找到的解是正确的,要么找不到解

4.舍伍德(Sherwood)算法

一定能找到解,而且是正确解

后面三种算法的实例等到有时间再补充。

查看评论

经典概率算法讲解

首先来看一个经典的概率算法: function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = arr...
  • MrWangc
  • MrWangc
  • 2016-12-28 10:24:22
  • 929

数值概率算法

1、随机数生成: 产生伪随机数最常用的方法是线性同余法。由线性同余法产生的均匀随机序列a[1],a[2],...,a[n],...满足  a[0]=d, a[n]=(b*a[n-1]+c) mod m...
  • judyge
  • judyge
  • 2015-10-29 20:20:39
  • 438

关于数值概率算法及随机数

一.关于随机数你了解多少?             要找到真正的随机数来源很困难,象离子辐射事件的脉冲检测器,气体放电管和带泄露的电容,我们不可能给每台需要产生随机数的电脑配这么一套装置,况且...
  • u014265347
  • u014265347
  • 2015-02-10 15:09:54
  • 960

一个简单抽奖算法的实现以及如何预防超中

一个简单抽奖算法的实现以及如何预防超中 需求 每个用户每天有3次抽奖机会; 抽奖奖池一共分为6档内容:现金红包1元,2元,3元,5元,iphone6s,谢谢参与; 支持每天调整和配置抽奖的...
  • z69183787
  • z69183787
  • 2016-06-24 21:45:49
  • 4110

概率算法(算法分析与设计)

0.概论 包括四种算法,数值概率算法(数值问题的求解,最优化问题的近似解)、蒙特罗卡算法(判定问题的准确解,不一定正确)、拉斯维加斯算法(不一定会得到解,但得到的解一定是正确解)、舍伍德算法(总能...
  • ChinaJane163
  • ChinaJane163
  • 2015-10-22 15:06:28
  • 4549

中科大概率算法课件

  • 2012年10月23日 18:44
  • 1.6MB
  • 下载

概率算法总结

一、分类 1)数字算法 利用随机性求数字问题的近似解,概率算法获得的答案是近似的,通常执行时间越长,精度就越高,误差就越小。 举例:Pi值的估计;数字积分(计算定积分的值);概率计数(求集合X的...
  • ljh0302
  • ljh0302
  • 2016-11-22 09:51:27
  • 651

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂 ...
  • dongsg11200
  • dongsg11200
  • 2014-04-28 00:21:58
  • 50039

抽奖概率-三种算法

最近接触到一个抽奖需求,加上平时玩的暗黑3很少掉暗金装备,就抽空学习下这类概率问题,暂时按网络称为掉宝类型概率。 例如游戏中打败一个boss,会掉落下面其中一个物品,而每个物品都有一定概率: 1. 靴...
  • woshixiongjin
  • woshixiongjin
  • 2014-03-03 17:28:15
  • 9414

游戏里随机概率选择算法

有时候当我们的游戏人物遇敌时,我们需我怪物随机根据概率选择处理方式,如下: 1、50%的机会友好的问候 2、25%的几率走开 3、20%的机会立即攻击 4、5%的机会提供金钱作为礼物 ...
  • wrq147
  • wrq147
  • 2012-08-30 11:31:45
  • 5504
    StackOverFlow
    http://stackoverflow.com/users/6526424
    统计
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 101万+
    积分: 9692
    排名: 2301
    博客专栏
    最新评论