龙空技术网

数值概率算法

程序员小兵 142

前言:

眼前咱们对“概率算法大数据”都比较着重,兄弟们都想要知道一些“概率算法大数据”的相关内容。那么小编同时在网摘上网罗了一些对于“概率算法大数据””的相关内容,希望看官们能喜欢,咱们快快来学习一下吧!

在解决实际问题时,有时会用到所谓的概率算法。概率算法允许在执行过程中随机地选择下一步的计算步骤,因此使用概率算法有时会大大地提高算法的效率,但有时也可能得不到问题的全部答案。

概率算法大致分为四类:数值概率算法,蒙特卡洛(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法,和舍伍德(Sherwood)算法。这里只介绍最为基础的数值概率算法。

数值概率算法常应用于解决数值计算的问题。应用数值概率算法往往只能得到问题的近似解,并且该近似解的精度一般随着计算时间的增加而不断提高。因为在一些数值问题中,不可能也没有必要计算出问题的精确解(例如:计算无理数π的取值等),因此,在解决一些数值计算的问题时,数值概率算法常能派上用场。

简单的源代码:#include "stdio.h"#include "math.h"#include "stdlib.h"#include "time.h"double Darts(int n){    double x,y;    time_t t;    int i,count = 0;    srand((unsigned)time(&t));    for(i=0;i<n;i++)    {        x = rand()%100/100.0;        y = rand()%100/100.0;        if(y<=1 - pow(x,2))            count++;    }    return (double)count/(double)n;	/*返回落入阴影区域的点数与总点数n的比值*/}main(){    int n;    printf("Please input the accuracy\n") ;		/*输入精度,即投点数*/    scanf("%d",&n);    printf("The result is about\n");			/*输出计算结果*/    printf("%f\n",Darts(n));    getche();}

运行结果:

标签: #概率算法大数据