/*************************************************************************************************************************************/ /* */ /* C O M P R E H E N S I O N D U P L U S P E T I T P R O G R A M M E D E C A L C U L D E P I : */ /* ( ' P O U R L A S C I E N C E ' , M A I 1 9 9 4 ) */ /* */ /* */ /* Author of '$xtc/pi_mini.02$c' : */ /* */ /* Unknown and Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). */ /* */ /*************************************************************************************************************************************/ #define N 14 #define PI 2000 /* Le nombre de chiffres de 'PI' donne le nombre de chiffres avec lequel est calcule 'pi' */ /* (y compris la partie entiere). Si donc ce nombre est augmente, il convient d'augmenter */ /* correlativement la valeur de 'N' (le nombre d'iterations). */ main() { int k; int pi=PI; for (k=1 ; k<=(N-1) ; k++) { pi = ((pi/((2*(N-k))+1)) * (N-k))+PI; /* Formule de recurrence mysterieuse pouvant etre ecrite : */ /* */ /* U */ /* k-1 */ /* U = ------------(N-k) + PI */ /* k 2(N-k) + 1 */ /* */ /* avec : */ /* */ /* U = PI */ /* 0 */ /* */ /* k E [1,N-1] */ /* */ /* pour une valeur 'N' maximale. */ /* */ /* Cela ressemble a une sorte de fraction continue "a l'envers" (c'est-a-dire ou c'est */ /* le numerateur, et non point le denominateur, qui est une fraction) ; ainsi, pour N=4 */ /* on a : */ /* */ /* 1 */ /* ---3 + 1 */ /* 7 */ /* ---------2 + 1 */ /* 5 */ /* ---------------1 + 1 */ /* 3 */ /* */ /* en faisant PI=1... */ } printf("\n pi = %d",pi); }