亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pi.cpp

?? 數值計算的例子和參考書籍
?? CPP
字號:
/*
 ** Pascal Sebah : September 1999
 ** 
 ** Subject:
 **
 **    A very easy program to compute Pi with many digits.
 **    No optimisations, no tricks, just a basic program to learn how
 **    to compute in multiprecision.  
 **
 ** Formulae:
 **
 **    Pi/4 =    arctan(1/2)+arctan(1/3)                     (Hutton 1)
 **    Pi/4 =  2*arctan(1/3)+arctan(1/7)                     (Hutton 2)
 **    Pi/4 =  4*arctan(1/5)-arctan(1/239)                   (Machin)
 **    Pi/4 = 12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239) (Gauss)
 **
 **      with arctan(x) =  x - x^3/3 + x^5/5 - ...
 **
 **    The Lehmer's measure is the sum of the inverse of the decimal
 **    logarithm of the pk in the arctan(1/pk). The more the measure
 **    is small, the more the formula is efficient.
 **    For example, with Machin's formula:
 **
 **      E = 1/log10(5)+1/log10(239) = 1.852
 ** 
 ** Data:
 **
 **    A big real (or multiprecision real) is defined in base B as:
 **      X = x(0) + x(1)/B^1 + ... + x(n-1)/B^(n-1)
 **      where 0<=x(i)<B
 **
 ** Results: (PentiumII, 450Mhz)
 **    
 **   Formula      :    Hutton 1  Hutton 2   Machin   Gauss
 **   Lehmer's measure:   5.418     3.280      1.852    1.786
 **
 **  1000   decimals:     0.2s      0.1s       0.06s    0.06s
 **  10000  decimals:    19.0s     11.4s       6.7s     6.4s
 **  100000 decimals:  1891.0s   1144.0s     785.0s   622.0s
 **
 ** With a little work it's possible to reduce those computation
 ** times by a factor 3 and more:
 **  
 **     => Work with double instead of long and the base B can
 **        be choosen as 10^8
 **     => During the iterations the numbers you add are smaller
 **        and smaller, take this in account in the +, *, /
 **     => In the division of y=x/d, you may precompute 1/d and
 **        avoid multiplications in the loop (only with doubles)
 **     => MaxDiv may be increased to more than 3000 with doubles
 **     => ...
 */
#include <time.h>
#include <stdio.h>
#include <malloc.h>
#include <math.h>
long B=10000; /* Working base */
long LB=4;    /* Log10(base)  */
long MaxDiv=450;  /* about sqrt(2^31/B) */
/*
 ** Set the big real x to the small integer Integer 
 */
void SetToInteger (long n, long *x, long Integer) {
	long i;
	for (i=1; i<n; i++) x[i] = 0;
	x[0] = Integer;
}
/*
 ** Is the big real x equal to zero ?
 */
long IsZero (long n, long *x) {
	long i;
	for (i=0; i<n; i++)  
		if (x[i])	return 0;
	return 1;
}
/*
 ** Addition of big reals : x += y
 **  Like school addition with carry management
 */
void Add (long n, long *x, long *y) {
	long carry=0, i;
	for (i=n-1; i>=0; i--) {
		x[i] += y[i]+carry;
		if (x[i]<B) carry = 0;
		else {
			carry = 1;
			x[i] -= B;
		}
	}  
}
/*
 ** Substraction of big reals : x -= y
 **  Like school substraction with carry management
 **  x must be greater than y
 */
void Sub (long n, long *x, long *y) {
	long i;
	for (i=n-1; i>=0; i--) {
		x[i] -= y[i];
		if (x[i]<0) {
			if (i) {	
				x[i] += B;
				x[i-1]--;
			}
		}
	}  
}
/*
 ** Multiplication of the big real x by the integer q 
 ** x = x*q.
 **  Like school multiplication with carry management
 */
void Mul (long n, long *x, long q) {
	long carry=0, xi, i;
	for (i=n-1; i>=0; i--) {
		xi  = x[i]*q;		
		xi += carry;		
		if (xi>=B) {
			carry = xi/B;
			xi -= (carry*B);
		}
		else 
			carry = 0;
		x[i] = xi;
	}  
}
/*
 ** Division of the big real x by the integer d 
 ** The result is y=x/d.
 **  Like school division with carry management
 **  d is limited to MaxDiv*MaxDiv.
 */
void Div (long n, long *x, long d, long *y) {
	long carry=0, xi, q, i;
	for (i=0; i<n; i++) {
		xi    = x[i]+carry*B;
		q     = xi/d;
		carry = xi-q*d;   
		y[i]  = q;        
	}  
}
/*
 ** Find the arc cotangent of the integer p = arctan (1/p)
 **  Result in the big real x (size n)
 **  buf1 and buf2 are two buffers of size n
 */
void arccot (long p, long n, long *x, long *buf1, long *buf2) {
	long p2=p*p, k=3, sign=0;
	long *uk=buf1, *vk=buf2;
	SetToInteger (n, x, 0);
	SetToInteger (n, uk, 1);	/* uk = 1/p */
	Div (n, uk, p, uk);
	Add (n, x, uk);	          /* x  = uk */

	while (!IsZero(n, uk)) {
		if (p<MaxDiv)
			Div (n, uk, p2, uk);  /* One step for small p */
		else {
			Div (n, uk, p, uk);   /* Two steps for large p (see division) */
			Div (n, uk, p, uk);  
		}
		/* uk = u(k-1)/(p^2) */
		Div (n, uk, k, vk);       /* vk = uk/k  */
		if (sign) Add (n, x, vk); /* x = x+vk   */
		else Sub (n, x, vk);      /* x = x-vk   */
		k+=2;
		sign = 1-sign;
	}
}
/*
 ** Print the big real x
 */
void Print (long n, long *x) {
	long i; 
	printf ("%d.", x[0]);
	for (i=1; i<n; i++) {
		printf ("%.4d", x[i]);
		if (i%25==0) printf ("%8d\n", i*4);
	}
	printf ("\n");
}
/*
 ** Computation of the constant Pi with arctan relations
 */
int main () {
	freopen("PI.txt", "w", stdout);
	clock_t endclock, startclock; 
	long NbDigits=10000, NbArctan;
	long p[10], m[10];
	long size=1+NbDigits/LB, i;
	long *Pi      = (long *)malloc(size*sizeof(long));
	long *arctan  = (long *)malloc(size*sizeof(long));
	long *buffer1 = (long *)malloc(size*sizeof(long));
	long *buffer2 = (long *)malloc(size*sizeof(long)); 
	startclock = clock();    
	/*
	 ** Formula used: 
	 **   
	 **   Pi/4 = 12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239) (Gauss)
	 */
	NbArctan = 3;
	m[0] = 12; m[1] = 8;  m[2] = -5;
	p[0] = 18; p[1] = 57; p[2] = 239; 
	SetToInteger (size, Pi, 0);
	/*
	 ** Computation of Pi/4 = Sum(i) [m[i]*arctan(1/p[i])] 
	 */
	for (i=0; i<NbArctan; i++) {
		arccot (p[i], size, arctan, buffer1, buffer2);
		Mul (size, arctan, abs(m[i]));
		if (m[i]>0) Add (size, Pi, arctan);  
		else        Sub (size, Pi, arctan);  
	}
	Mul (size, Pi, 4);
	endclock = clock ();
	Print (size, Pi);  /* Print out of Pi */
	printf ("Computation time is : %9.2f seconds\n",  
			(float)(endclock-startclock)/(float)CLOCKS_PER_SEC ); 
	free (Pi);
	free (arctan);
	free (buffer1);
	free (buffer2);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区av在线| 日韩欧美中文一区| 国产三级三级三级精品8ⅰ区| 91色porny在线视频| 国产一区二区三区四区五区入口 | 三级在线观看一区二区| 亚洲精品成人在线| 国产精品国产三级国产aⅴ入口| 欧美一区二区三区男人的天堂| 久久女同性恋中文字幕| 丝袜亚洲另类欧美| 久久精品国产成人一区二区三区 | 色婷婷综合五月| 国模套图日韩精品一区二区 | 91蜜桃婷婷狠狠久久综合9色| 91免费看片在线观看| 精品国内二区三区| 中文字幕永久在线不卡| 国产精品妹子av| 中文字幕成人网| 一区二区三区 在线观看视频| 亚洲精品高清在线观看| 亚洲精选视频免费看| 日韩影院精彩在线| a在线播放不卡| 国产亚洲1区2区3区| 欧美高清一级片在线观看| 日本一二三四高清不卡| 亚洲欧美激情视频在线观看一区二区三区| 久久久久国产精品厨房| 久久综合色之久久综合| 色婷婷久久久亚洲一区二区三区| 成人av动漫在线| 不卡一区二区三区四区| 一二三区精品视频| 91玉足脚交白嫩脚丫在线播放| 日韩欧美国产高清| 亚洲一区二区三区三| 美女视频黄 久久| 国产成人精品亚洲日本在线桃色 | 9久草视频在线视频精品| 麻豆精品一区二区av白丝在线| 92国产精品观看| 亚洲四区在线观看| 成人午夜精品在线| 亚洲免费资源在线播放| 欧美另类久久久品| 91亚洲午夜精品久久久久久| 秋霞国产午夜精品免费视频 | 91福利在线观看| 国产一区高清在线| 午夜精品久久久久久久久久| 国产精品区一区二区三区| 欧美一级二级在线观看| 欧美性色欧美a在线播放| 国产精品99久久久久久似苏梦涵| 日日摸夜夜添夜夜添精品视频| 中文字幕亚洲一区二区av在线 | 国产经典欧美精品| 亚洲chinese男男1069| 亚洲欧美日韩国产中文在线| 国产色综合久久| 欧美成人乱码一区二区三区| 欧美精品粉嫩高潮一区二区| 在线免费一区三区| 色乱码一区二区三区88| 丁香婷婷综合激情五月色| 国产尤物一区二区在线| 久久国产精品无码网站| 婷婷综合五月天| 亚洲资源在线观看| 亚洲精品高清视频在线观看| 亚洲天堂免费在线观看视频| 欧美国产一区在线| 亚洲国产精品传媒在线观看| 26uuu精品一区二区| 欧美精品一区二区三区久久久| 欧美一区二区日韩| 日韩精品一区二区三区在线| 日韩三级免费观看| 日韩久久久精品| 日韩精品一区二| 久久影院电视剧免费观看| 精品黑人一区二区三区久久| 精品播放一区二区| 久久久久久久久久久久久夜| 国产女人18水真多18精品一级做 | 中文字幕第一区第二区| 国产精品污www在线观看| 国产精品乱人伦中文| 国产精品国产自产拍在线| 国产精品福利影院| 亚洲欧美日韩久久精品| 亚洲国产一区二区在线播放| 亚洲国产精品麻豆| 青青草国产精品亚洲专区无| 美腿丝袜亚洲色图| 国产白丝精品91爽爽久久| 99久久伊人网影院| 日本乱码高清不卡字幕| 欧美精品xxxxbbbb| www久久精品| 国产精品麻豆视频| 亚洲一区二区av在线| 美女在线观看视频一区二区| 国产精品亚洲一区二区三区妖精 | 国产精品小仙女| 成人手机在线视频| 欧美亚洲日本一区| 欧美一区二区三区白人| 国产日本一区二区| 亚洲精品水蜜桃| 免费人成黄页网站在线一区二区| 狠狠久久亚洲欧美| 91香蕉国产在线观看软件| 久久久精品蜜桃| 亚洲精品国产成人久久av盗摄 | 久久麻豆一区二区| 亚洲精品欧美在线| 男男gaygay亚洲| 成人网男人的天堂| 在线电影一区二区三区| 国产性色一区二区| 亚洲国产视频在线| 国产99久久久久久免费看农村| 欧美日韩午夜精品| 久久久久国色av免费看影院| 亚洲国产三级在线| 成人精品一区二区三区中文字幕| 欧美放荡的少妇| 国产精品色婷婷久久58| 日韩一区欧美二区| 97久久精品人人爽人人爽蜜臀 | 欧美女孩性生活视频| 日本一区二区三区四区| 日本欧美在线看| 91视视频在线观看入口直接观看www| 欧美一区在线视频| 一区二区三区资源| 国产福利91精品| 91精品国产综合久久福利| 国产精品对白交换视频| 国产一区二区三区| 91精品福利在线一区二区三区| 亚洲精品伦理在线| 成人一区二区三区视频| 精品国产电影一区二区| 日韩电影在线免费| 在线欧美日韩国产| 中文字幕日韩欧美一区二区三区| 捆绑变态av一区二区三区| 欧美日韩成人综合天天影院| 亚洲欧美日韩一区| 国产98色在线|日韩| 日韩欧美国产精品一区| 夜夜爽夜夜爽精品视频| 96av麻豆蜜桃一区二区| 欧美电影免费提供在线观看| 亚洲精品国久久99热| 亚洲男人的天堂一区二区| 丰满亚洲少妇av| 日韩欧美在线网站| 一区二区三区久久久| 国产一本一道久久香蕉| 精品成人免费观看| 美女一区二区久久| 欧美日韩一级大片网址| 中文字幕av在线一区二区三区| 成人性色生活片| 欧美精品一卡两卡| 樱花影视一区二区| 国产成人啪免费观看软件 | 91精品国产欧美日韩| 亚洲精品久久久久久国产精华液| 丁香激情综合国产| 国产亚洲欧美日韩在线一区| 免费观看成人鲁鲁鲁鲁鲁视频| 色妹子一区二区| 亚洲欧美日韩在线不卡| 欧美中文字幕亚洲一区二区va在线| 国产精品美女久久久久aⅴ国产馆| 美国十次综合导航| 欧美一级理论片| 韩国视频一区二区| 欧美tickling挠脚心丨vk| 视频在线观看91| 欧美日本在线一区| 久久国产尿小便嘘嘘尿| 精品欧美乱码久久久久久1区2区| 蜜桃免费网站一区二区三区| 欧美日韩国产123区| 亚洲午夜精品网| 在线综合亚洲欧美在线视频| 国产一区免费电影| 中文字幕国产一区| 欧美性生活大片视频| 久久精品国产澳门| 国产亚洲一区二区三区| 99久久99久久精品免费看蜜桃| 国产精品国产自产拍高清av|