正文

78.求π的近似值2005-09-10 15:18:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/1728.html

分享到:

78.求π的近似值
请利用“正多边形逼近”的方法求出π的近似值
*问题分析与算法设计
利用“正多边形逼近”的方法求出π值在很早以前就存在,我们的先人祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6位的π值的。
利用圆内接正六边形边长等于半径的特点将边数翻番,作出正十二边形,求出边长,重复这一过程,就可获得所需精度的π的近似值。
假设单位圆内接多边形的边长为2b,边数为i,则边数加倍后新的正多边形的边长为:
x=√──────
2-2*√───
1-b*b
──────
2
周长为:
y=2 * i * x i:为加倍前的正多边形的边数

*程序与程序注释
#include<stdio.h>
#include<math.h>
void main()
{
double e=0.1,b=0.5,c,d;
long int i; /*i: 正多边形边数*/
for(i=6;;i*=2) /*正多边形边数加倍*/
{
d=1.0-sqrt(1.0-b*b); /*计算圆内接正多边形的边长*/
b=0.5*sqrt(b*b+d*d);
if(2*i*b-i*e<1e-15) break; /*精度达1e-15则停止计算*/
e=b; /*保存本次正多边形的边长作为下一次精度控制的依据*/
}
printf("pai=%.15lf\n",2*i*b); /*输出π值和正多边形的边数*/
printf("The number of edges of required polygon:%ld\n",i);
}
*运行结果
pai=3.141592653589794
The number of edges of required polygon:100663296

*思考题
请用外切正多边形逼近的方法求π的近似值。

阅读(3166) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册