正文

[029] 求π的近似值2006-03-08 22:43:00

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

分享到:

<谭> 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> 蒙特卡罗法和拉斯维加斯法

看着有些方法眼熟, 好像是"数值分析"课里有学到, 再么就是数模有所涉及。唉,全都忘完了, 有空再研究这些高深的东西吧。题目中用的方法又属哪种方法呢? 不管了,先睡觉……

阅读(4142) | 评论(1)


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

评论

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