用馬青公式計算 的c程式

2021-05-23 12:58:47 字數 1763 閱讀 3010

/*乙個計算π的c程式

***********************************===

由於大多數計算機內建演算法有一定精度限制,你想計算那麼多位就會產生問題。

這裡有乙個c程式,允許計算要多少有多少。但馬青公式在試圖計算億位時不理想。

下面就是這個程式。超過萬位時此程式就不能勝任了。而jason chen的程式可算到10萬位!

目前最快的方法是chudnovsky、ramanujan和金田康正的高斯-勒讓德演算法。

*/ ///

/****************************************/

/* compute pi to arbitrary precision    */

/* author roy williams february 1994    */

/* uses machin's formula...             */

/* pi/4 = 4 arctan(1/5) - arctan(1/239) */

/****************************************/

/* compile with cc -o -o pi pi.c        */

/* run as "pi 1000"                     */

/****************************************/

/* the last few digits may be wrong.......... */

#include

#include

#define base    10000

int nblock;

int *tot;

int *t1;

int *t2;

int *t3;

void copy(int *result, int *from)}}

void sub(int *result, int *decrem)}}

void mult(int *result, int factor)

}void div(int *result, int denom)

copy(w2, w1);

div(w2, 2*k+1);

if(k%2)

sub(result, w2);

else

add(result, w2);

k++;

} while(!zero(w2));

}//void main(int argc, char *argv)

void test()

*/if(ndigit < 20) ndigit = 20;

nblock = ndigit/4;

tot = (int *)malloc(nblock*sizeof(int));

t1 = (int *)malloc(nblock*sizeof(int));

t2 = (int *)malloc(nblock*sizeof(int));

t3 = (int *)malloc(nblock*sizeof(int));

if(!tot || !t1 || !t2 || !t3)

arctan(tot, t1, t2, 5, 1);

mult(tot, 4);

arctan(t3, t1, t2, 239, 2);

sub(tot, t3);

mult(tot, 4);

print(tot);

}

利用馬青公式輸出 的後任意位數字

16arc tan1 5 4a rcta n1239 16 arct an15 4ar ctan 1239 arctanx x x 33 x 55 arc tanx x x 33 x 55 16 11 5 1 3 53 4 11 239 1 3 2393 16 11 5 1 3 53 4 11 23...

用公式計算出你的幸福

美國著名心理學家賽利格曼提出了乙個幸福的公式 總幸福指數 先天的遺傳素質 後天的環境 你能主動控制的心理力量 其英文的表達 h s c v 當代的人們更加開放地生活,我們坦言幸福,我們追求幸福。幸福在 當代心理學告訴我們,幸福也是有指數的,總幸福指數是指你的較為穩定的幸福感,而不是暫時的快樂和幸福。...

c 根據公式進行自動計算的實現

using system using system.codedom.compiler using system.reflection using system.text using microsoft.csharp namespace expression n 編譯 compilerresults ...