Bonjour,
La Formule (ou Produit) de Viète:
Pi = 2 * 2/sqrt(2) * 2/sqrt(2+sqrt(2)) * 2/sqrt(2+sqrt(2+sqrt(2)) * ...
date du début du 17e siècle.
Elle est assez rapide, puisqu'il ne faut que 24 itérations pour approcher pi en double précision.
Par contre, à chaque pas, il faut calculer une racine carrée.
Cet article fait partie de la série
Approximations de Pi.
Voir également:
Formule de Viète pour le calcul de pi.
La programmation est simple:
double Viete_A(int n) { // classique
double q=0.0, pi=2.0;
for (int i=0; i<n; ++i) {
q = sqrt(2.0+q);
pi *= 2.0/q;
}
return pi;
}
double Viete_B(int n) { // concentré
double q=0.0, pi=2.0;
for (int i=0; i<n; ++i) pi *= 2.0/(q=sqrt(2.0+q));
return pi;
}
Ces deux fonctions sont "équivalentes".
Le
Zip contient le seul fichier source
Viete.cpp dont voici l'
Output:
Viete_A: pi = 2 * 2/sqrt(2) * 2/sqrt(2+sqrt(2)) * 2/sqrt(2+sqrt(2+sqrt(2)) *...
n= 4: pi=3.13654849054594
n= 8: pi=3.14157294036709
n=12: pi=3.14159257658487
n=16: pi=3.14159265328899
n=20: pi=3.14159265358862
n=24: pi=3.14159265358979
precis: pi=3.14159265358979
Viete_B: pi = 2 * 2/sqrt(2) * 2/sqrt(2+sqrt(2)) * 2/sqrt(2+sqrt(2+sqrt(2)) *...
n= 4: pi=3.13654849054594
n= 8: pi=3.14157294036709
n=12: pi=3.14159257658487
n=16: pi=3.14159265328899
n=20: pi=3.14159265358862
n=24: pi=3.14159265358979
precis: pi=3.14159265358979
Bonne lecture ...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.