标签: spigot-algorithm

实现π(pi)的Spigot算法

我有一个很难理解的承插算法发现π(圆周率)在此页面的底部.

我迷失在第2部分"将A放入常规形式"的底部,我不确定如何用C(或任何语言) 实现这一点

c algorithm math spigot-algorithm

9
推荐指数
1
解决办法
5679
查看次数

任何人都可以为这个插口算法代码Pitiny.c做头或者故事

这个C程序只有143个字符!

但它"解压缩"为Pi的前10,000位数字.

//  Created by cheeseMan on 30/11/13.

long a[35014],b,c=35014,d,e,f=1e4,g,h;

int main(int argc, const char * argv[])

{
    for(;(b=c-=14);

        h=printf("%04ld",e+d/f))

        for(e=d%=f;(g=--b*2);d/=g)
            d=d*b+f*(h?a[b]:f/5), a[b]=d%--g;
}
Run Code Online (Sandbox Code Playgroud)

当我遇到这个时,我正在做一些关于无损压缩算法的研究,但仍然没有运气pitiny.c.

奇怪的是,它成功编译没有错误或错误,但就像我说我不能成为代码的头或者故事,甚至它的语法.我想知道最近发生了什么?这究竟是做什么的?

c compression pi lossless-compression spigot-algorithm

4
推荐指数
1
解决办法
975
查看次数

JavaScript Pi Spigot 算法不起作用

我翻译了以下C++ 代码

#include <iostream>
using namespace std;
#define NDIGITS 100
#define LEN (NDIGITS/4+1)*14

long a[LEN];
long b;
long c = LEN;
long d;
long e = 0;
long f = 10000;
long g;
long h = 0;
int main(void) {
    cout<<b<<endl;
    for(; (b=c-=14) > 0 ;){
        for(; --b > 0 ;){
            d *= b;
            if( h == 0 )
                d += 2000*f;
            else
                d += a[b]*f;
            g=b+b-1;
            a[b] = d % g;
            d /= g;
        }
        h = …
Run Code Online (Sandbox Code Playgroud)

javascript c++ pi spigot-algorithm

3
推荐指数
1
解决办法
428
查看次数