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

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

?? piclassic.c

?? 計算pi ** Pascal Sebah : September 1999 ** ** Subject: ** ** A very easy program to compute Pi w
?? C
字號:
/*
** 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
*/
void main () {  
  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一区二区三区免费野_久草精品视频
亚洲欧美经典视频| 精品一区二区日韩| 91蜜桃网址入口| 亚洲人亚洲人成电影网站色| 成人动漫一区二区三区| 中文字幕一区二区三区视频| 91社区在线播放| 亚洲一区二区黄色| 日韩一级二级三级| 国产精品自拍一区| 中文字幕永久在线不卡| 91网页版在线| 日韩中文字幕不卡| 久久久噜噜噜久噜久久综合| 成人午夜免费电影| 一区二区在线观看免费| 欧美日韩国产一区二区三区地区| 日韩电影网1区2区| 国产亚洲美州欧州综合国| 99re66热这里只有精品3直播| 亚洲综合激情小说| 精品国一区二区三区| 99久久国产综合精品麻豆| 亚洲成av人综合在线观看| 2023国产精品自拍| 一本久道中文字幕精品亚洲嫩| 午夜精品久久久久久久99水蜜桃 | 精品制服美女丁香| 中文字幕高清一区| 欧美精品 日韩| 国产大陆a不卡| 亚洲一区二区三区国产| 久久色视频免费观看| 色视频一区二区| 国产精品99久久不卡二区| 亚洲国产一区二区三区青草影视| 久久综合九色欧美综合狠狠| 91麻豆成人久久精品二区三区| 另类调教123区| 一二三四社区欧美黄| 欧美精品一区二区三区蜜臀| 91国在线观看| 国产成人综合亚洲91猫咪| 午夜精品在线看| 国产精品国产三级国产普通话三级 | 亚洲欧美一区二区视频| 日韩一区二区三区av| 91福利在线导航| 国产成人午夜电影网| 亚洲18女电影在线观看| 国产精品美女久久福利网站| 日韩精品一区二区三区在线观看| 色婷婷久久综合| 成年人网站91| 国产精品影音先锋| 麻豆国产精品官网| 亚洲专区一二三| 最新成人av在线| 国产精品免费看片| 欧美激情一二三区| 国产亚洲欧美日韩在线一区| 日韩欧美在线不卡| 欧美人与z0zoxxxx视频| 91视频91自| 一本大道av一区二区在线播放| 国产成人av电影在线播放| 久久精品999| 日本vs亚洲vs韩国一区三区二区| 亚洲午夜三级在线| 一区二区欧美国产| 亚洲一线二线三线视频| 一区二区三区四区在线播放| 亚洲精品中文字幕乱码三区| 亚洲欧洲成人精品av97| 国产精品国产三级国产aⅴ中文| 日本一区二区久久| 欧美激情一区二区三区蜜桃视频| 久久久一区二区三区捆绑**| 久久久一区二区三区| www一区二区| 久久久久久久久久久黄色| 国产日韩欧美不卡| 国产精品久久久久久久第一福利| 日本一区二区久久| 亚洲乱码国产乱码精品精可以看 | 在线观看免费亚洲| 欧美综合亚洲图片综合区| 欧美系列在线观看| 欧美日韩亚洲另类| 日韩手机在线导航| 久久综合久久综合久久| 欧美国产精品一区二区三区| 国产精品入口麻豆九色| 亚洲日本乱码在线观看| 一区二区三区四区不卡视频| 午夜天堂影视香蕉久久| 精品制服美女久久| av中文字幕亚洲| 欧美三级日韩三级国产三级| 欧美精品日韩一区| 久久久精品日韩欧美| 最好看的中文字幕久久| 亚洲国产精品一区二区久久| 日韩电影在线看| 成人午夜视频在线观看| 欧美日韩一区二区三区四区五区| 日韩一级片网站| 国产精品动漫网站| 舔着乳尖日韩一区| 国产福利一区二区三区| 色狠狠色狠狠综合| 2023国产一二三区日本精品2022| 国产精品毛片高清在线完整版| 亚洲专区一二三| 国产电影一区二区三区| 欧美体内she精高潮| 久久午夜国产精品| 亚洲女同一区二区| 久久爱另类一区二区小说| 91美女在线看| 精品成人一区二区三区| 亚洲精品国产视频| 国模少妇一区二区三区| 色婷婷综合激情| 国产日韩欧美麻豆| 视频精品一区二区| 色综合网色综合| 国产婷婷一区二区| 天天影视网天天综合色在线播放| 成人午夜免费电影| 日韩精品一区二区三区蜜臀| 亚洲婷婷综合久久一本伊一区| 麻豆国产91在线播放| 欧美视频在线播放| 亚洲欧美在线视频| 国产大片一区二区| 日韩欧美美女一区二区三区| 亚洲一区二区三区四区在线| 国产不卡视频在线播放| 精品嫩草影院久久| 婷婷亚洲久悠悠色悠在线播放| 91麻豆国产自产在线观看| 久久久99精品久久| 日本不卡一区二区| 欧美日韩成人激情| 亚洲人xxxx| 91免费看视频| 国产精品久久久久永久免费观看| 精品一区二区三区蜜桃| 91精品国产综合久久久久| 亚洲午夜在线观看视频在线| 91猫先生在线| 亚洲三级久久久| 成人理论电影网| 久久精品一区二区三区av| 久久99精品国产麻豆不卡| 91精品国产综合久久久久久| 午夜成人免费视频| 欧美理论片在线| 亚洲va欧美va天堂v国产综合| 色综合天天性综合| 18成人在线观看| 91丨porny丨在线| 一区二区三区四区不卡在线 | 国产乱码字幕精品高清av| 精品久久久三级丝袜| 狠狠狠色丁香婷婷综合久久五月| 日韩女优制服丝袜电影| 精品一区二区三区在线播放 | 欧美综合在线视频| 亚洲一二三区视频在线观看| 欧美色网一区二区| 亚洲一区免费观看| 9191国产精品| 美女任你摸久久| 欧美精品一区二区三区四区| 国产一区啦啦啦在线观看| 国产亚洲精品免费| 成人美女视频在线观看18| 亚洲视频图片小说| 欧美另类高清zo欧美| 麻豆免费精品视频| 久久综合久久综合亚洲| 波多野结衣一区二区三区| 国产精品美女久久久久久久久久久| voyeur盗摄精品| 亚洲成人先锋电影| 日韩精品中文字幕在线一区| 国产精品亚洲一区二区三区妖精| 国产精品久久久久四虎| 色国产综合视频| 日韩电影在线观看一区| 久久精品亚洲乱码伦伦中文| 972aa.com艺术欧美| 亚洲国产精品久久久男人的天堂| 欧美一区二区视频观看视频| 国产一区二区三区在线观看精品| 亚洲欧美电影院| 日韩一区和二区| 99在线视频精品|