<谭> 6.7 用 π / 4 ≈ 1 - 1/3 + 1/5 - 1/7 + ……公式求π 的近似值,直到最后一项的绝对值小于10-6为止。
#include <stdio.h>
#include <math.h>
int main()
{
int s;
float n, t, pi;
t = 1; /* 第一项为1 */
pi = 0; /* 多项式的和 */
n = 1.0; /* 各项分母 */
s = 1; /* 控制各项正负 */
while ((fabs(t)) > 1e-6)
{
pi = pi + t; /* 各项累加 */
n = n + 2; /* 分母以公差2递增 */
s = -s;
t = s / n; /* 计算下一项 */
}
pi *= 4;
printf("pi=%10.6f\n", pi);
return 0;
}
运行结果(VC):
===============================
pi= 3.141594
===============================
★ 练练循环结构, 以及如上形式的结束条件判断。关于π近似值的求法, 查了一下, 大概有如下几种方法:
<1> 梯形公式和辛普森公式
<2> 泰勒级数法(Maqin公式)
<3> 蒙特卡罗法(投点法)
<4> 蒲丰投针法
<5> 随机整数互素法
<6> 蒙特卡罗法和拉斯维加斯法
看着有些方法眼熟, 好像是"数值分析"课里有学到, 再么就是数模有所涉及。唉,全都忘完了, 有空再研究这些高深的东西吧。题目中用的方法又属哪种方法呢? 不管了,先睡觉……
正文
[029] 求π的近似值2006-03-08 22:43:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/wentao/10838.html
阅读(4142) | 评论(1)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论