首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这段代码如何高精度地计算pi?

这段代码如何高精度地计算pi?
EN

Stack Overflow用户
提问于 2016-10-01 03:25:33
回答 1查看 813关注 0票数 5

以下是代码:

代码语言:javascript
复制
#include <stdio.h>

long f[2801];

int main()
{
    long i = 0, c = 2800, d = 0, e = 0, g = 0;
    for (i = 0; i < c; ++i)
        f[i] = 2000;
    for (;;) {
        d = 0; 
        g = c * 2;
        if (!g)
            break;
        i = c;
        for(;;) {
            d += f[i] * 10000;
            --g;
            f[i] = d % g;
            d /= g;
            --g;
            --i;
            if (!i) break;
            d *= i;
        }
        printf("%.4ld",e+d/10000);
        e = d % 10000;
        c -= 14;
    }
    return 0;
}

我的问题是:这段代码是如何用高十进制精度计算π的,它使用的数学公式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-01 03:51:00

这是荷兰CWI研究所的Dik .温特编写的PI程序的格式化副本。最初是以模糊的形式写成的,用两行或三行的形式,Dik和其他的变体输出了不同数量的PI (例如800,15,000等)。基于一个数列的评价。

这是一种被称为“spigot算法”的程序,旨在输出特定数量的数字。你可以通过谷歌搜索迪克温特和“蜘蛛算法”找到更多信息。以下是一些例子:

用C语言计算Pi对算法进行了详细的分析,并给出了一些未回答的问题。

数字,而不是电影

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39802720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档