我有一个很难理解的承插算法发现π(圆周率)在此页面的底部.
我迷失在第2部分"将A放入常规形式"的底部,我不确定如何用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++ 代码:
#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)