C代码:使用概率的方法计算圆的面积

来源:互联网 发布:c语言中的函数是什么 编辑:程序博客网 时间:2024/06/11 07:40
#include <stdlib.h>#include <time.h>#include <stdio.h>/*计算圆的面积*///函数功能:产生[0,1]里的随机小数double randomnumber(){double d=((double)rand())/RAND_MAX;return d;} //函数功能:给定一个圆半径,计算圆的面积double circleArea(double r)   //圆的半径为r,圆的外接正方形的边长为2r,圆的面积仅由半径r决定{double x,y;           //随机产生的点的横坐标与纵坐标int times=0;          //计算点落在圆里的次数int i = 0;      //for循环的计数器int cycle = 10000000; //for循环的执行次数,该次数越大,计算结果越接近真实值。double area = 0;//圆的面积for(i=0;i<=cycle;i++) //循环执行10000000次,通过使用大量的循环次数来提高精度。{x=randomnumber()*r;//点的横坐标=[0,1]里的一个随机小数×半径y=randomnumber()*r;//点的纵坐标=[0,1]里的一个随机小数×半径if(x*x+y*y<=r*r)   //如果点落在圆的内部,即x^2+y^2<=r^2,times自加times++;   }area=(float)times*(4*r*r)/cycle;//面积=((点落在圆里的次数)/循环次数)×圆的外接正方形的面积return area;    //返回圆的面积}int main(){/*初始化随机函数种子,srand((unsigned)time(NULL));是拿系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。使用时,参数可以是unsigned型的任意数据,比如srand(10);如果不使用srand,而用rand()产生的随机数,在多次运行,结果是一样的。*/srand((unsigned)time(NULL));printf("圆的面积=%.1f\n",circleArea(10000));int i =0;}
原创粉丝点击