电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

圆周率的几种C语言编程代码VIP免费

圆周率的几种C语言编程代码_第1页
1/6
圆周率的几种C语言编程代码_第2页
2/6
圆周率的几种C语言编程代码_第3页
3/6
计算 π 的方法一、蒙特卡罗法(Monte Carlo)蒙特卡洛方法是一种以概率统计理论为指导的一类非常重要的数值计算方法。蒙特卡罗是摩纳哥公国的一座城市(赌城)。Buffon 投针就是蒙特卡洛方法的思想,但是 Buffon 是蒙特卡洛方法的起源。蒙特卡洛方法同样可以通过随机通过产生随机数的方式来解决计算问题。比如估算和计算不规则图形的面积。图 1 蒙特卡罗方法模拟这种方法是一种利用计算机随机数的功能基于“随机数” 的算法, 通过计算落在单位圆内的点与落在正方形内的点的比值求PI。图 2 蒙特卡罗方法由于图形的对称性,我们靠考虑该图的四分之一部分。假定一点能够均匀地扔到一个正方形中, 计算落入其中的点个数。 通过计数其中落入内切圆的点的个数;如果一共投入 N个点,其中有 M个落入圆中, 则只要点均匀, 假定圆周的半径为 R,则:式( 1)该方法得到的要得到 π 的精度与投入点的个数有关, 一般个数较大时精度比较高。//Monte Carlo Methoddoublerand_pi ( intn) {intnumInCircle= 0;double x, y;double pi ;for( inti= 0; i< n; i ++){x = rand ()*1.0/RAND_MAX;y = rand ()*1.0/RAND_MAX;if( x * x + y * y < 1)numInCircle ++;}pi = ( 4.0 * numInCircle ) /n;returnpi ;}图 3 蒙特卡罗示例代码写出来你的代码实际测试结果(10 Marks )表 1 蒙特卡罗方法实际测试结果次数10 102103104105106107108109计算值运行时间(ms)误差二、数学公式(级数)由数学公式: ? 式( 2)当 n 取 1000 时就很接近//Numerical Series//Sigma(1/n^2) = pi/6doublemath_Pi( intn) {intnumInCircle= 0;double sum = 0;double pi ;for( inti= 1; i<= n; i ++){sum += 1.0 / ((double)i *i );}pi = sqrt ( sum * 6);returnpi ;}图 4 级数方法示例代码写出来你的代码实际测试结果(10 Marks )表 2 级数方法实际测试结果次数10 102103104105106107108109计算值运行时间(ms)误差三、划分网格计算π图 5 蒙特卡罗示例代码将图片分为 n*n 个小方形, 统计落在圆内的个数占所有方形的比例。//Grid Countdoublegrid_Pi ( intn) {inti ;double sum = 0;for( i= 0;i< n;i ++)sum += ( int ) sqrt ( n*( double ) n -i *( double ) i );return( 4.0* sum)/n / n;}图 6 网格划分示例代码写出来你...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

圆周率的几种C语言编程代码

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部