Numarul pi pe 8192 de biti

O mica istorie a determinării cat mai multor zecimale a numărului pi:

  • 2000 I.Hr. – Egiptenii socoteau numărul pi ca fiind 16² / 9² sau 256/81, sau 3.16 cu o exactitate de o singura zecimala.
  • 250 I. Hr. – Filozoful grec Arhimede a fost primul care a estimat cat mai riguros numarul pi. El a realizat ca amploarea acestuia poate fi limitata inscriind cercuri in poligoane regulate si calculand perimetrele externe si interne a acestor poligoane. Folosind 96 astfel de poligoane, el a demonstrat ca 3 10/71 < ∏ < 3 10/70, adica 3.14185 – o exactitate de 3 zecimale.
  • Secolul al 16-lea – Ludolph van Ceulen din Germania a calculat numarul pi cu o exactitate de 35 de zecimale dar a murit inainte de a fi publicata descoperirea. Asa ca, aceasta a fost inscriptionata pe piatra lui funerara.
  • 1706 – Astronomul englez John Machin a descoperit o formula complicata pentru aflarea cat mai exacta a numarului pi, si a calculat cu exactitate primele 100 de zecimale.
  • 1873 – Matematicianul englez William Shanks s-a chinuit timp de 15 ani pentru calcularea a 707 zecimale dar din pacate a facut o greseala la a 528-a zecimala, rezultand ca celelalte zecimale sa fie gresite la randul lor.
  • 2004 – Yasumasa Kanada din Tokyo a calculat cu ajutorul unui computer un număr de 1.24 trilioane de zecimale a numărului pi.

Metoda ce mai rapida de calcul este folosind metoda Gauss–Legendre algorithm.


#include "stdio .h"
#include "math .h"

// Fascinating number - PI
int main ( int argv, char *argc[] )
{
double a = 1.0;
double b = 1.0/sqrt ( 2.0 );
double t = 1.0/4.0;
double x = 1.0;
double y;

int i;
for ( i = 0; i < 4; i++ )
{
y = a;
a = (a + b)/2.0;
b = sqrt ( b*y );
t -= x*(y - a)*(y - a);
x *= 2;
}

double pi = (a + b)*(a + b)/(4*t);
printf ( "%.15fn", pi );

return 0;
}

Dupa compilare și link editare rezulta:


$ calculPi.exe
3.141592653589794

Calcul efectiv al numărului pi l-am făcut folosind scriptul de aici.
Numărul Pi pe 8192 de biți este acesta:
pi = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548880
O zi plăcută tuturor !