编程求pi的值

割圆法求pi值(正多边形逼近)的算法,C语言或M语言

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

周长为:
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);
}
*运行结果
pi=3.141592653589794
The number of edges of required polygon:100663296
来源:考试大-计算机二级考试
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网