-
梅欽類公式
鎖定
- 中文名
- 梅欽類公式
- 外文名
- Machin-like formula
- 分 類
- 數理科學
目錄
- 1 形式
- 2 導出
- 3 用梅欽公式編程計算圓周率(C++)
梅欽類公式形式
梅欽公式的形式為
梅欽依據此公式,把圓周率計算到一百多位小數。
梅欽類公式的形式為:
梅欽類公式的應用可結合反正切函數的泰勒級數展開
[1]
:
梅欽類公式導出
根據角的和差公式,
若
有
反覆應用這一方程,可得到所有的梅欽類公式,比如最初的梅欽公式:
梅欽類公式用梅欽公式編程計算圓周率(C++)
#include<cstdio> #include<iostream> using namespace std; /* 本程序每四位數輸出,如果請求計算的位數不是4的整數倍,最後輸出可能會少1~3位數 */ int main(void) { long a[2]={956,80},b[2]={57121,25},i=0,j,k,p,q,r,s=2,t,u,v,N,M=10000; printf("%9cMachin%6cpi=16arctan(1/5)-4arctan(1/239)" \ "\nPlease input a number.\n",32,32); cin>>N,N=N/4+3; long *pi=new long[N],*e=new long[N]; while(i<N) pi[i++]=0; while(--s+1) { for(*e=a[k=s],i=N;--i;) e[i]=0; for(q=1;j=i-1,i<N;e[i]?0:++i,q+=2,k=!k) for(r=v=0;++j<N;pi[j]+=k?u:-u) u=(t=v*M+(e[j]=(p=r*M+e[j])/b[s]))/q,r=p%b[s],v=t%q; } while(--i) (pi[i]=(t=pi[i]+s)%M)<0?pi[i]+=M,s=t/M-1:s=t/M; for(cout<<"3.";++i<N-2;)printf("%04ld",pi[i]); delete []pi,delete []e,cin.ignore(),cin.ignore(); return 0; }
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:3次歷史版本
- 最近更新: L海杰123