数字概率算法
主要用于找到一个数字问题的近似解
求解PI的近似解的实验
将n根飞镖随机投向一正方形的靶子,计算落入此正方形的内切圆中的飞镖数目k。假定飞镖击中方形靶子任一点的概率相等(用计算机模拟比任一飞镖高手更能保证此假设成立)
则可得出公式 PI=4k/n
double caculatePI(){
double x=0, y=0;
unsigned int k=0;
srand((unsigned)time(NULL));
for(unsigned int i=0; i<N; ++i){
x = rand()/(RAND_MAX*1.0);
y = rand()/(RAND_MAX*1.0);
if(x*x + y*y <= 1)
++k;
}
return (double)(4*k)/N;
}
实验结果