Calculer une valeur approximative de Pi

hautparleur Messages postés 213 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 13 mai 2016 - 23 sept. 2014 à 19:05
hautparleur Messages postés 213 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 13 mai 2016 - 27 sept. 2014 à 11:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/100757-calculer-une-valeur-approximative-de-pi

hautparleur Messages postés 213 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 13 mai 2016
27 sept. 2014 à 11:50
merci, je vais essayer d'autres formules.
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
Modifié par KX le 26/09/2014 à 19:17
Bonjour,

Pour faire ton approximation tu as utilisé la formule de Leibniz, c'est loin d'être la meilleure méthode car tu converges très lentement vers le résultat.

Il existe d'autres méthodes beaucoup plus rapide, par exemple la formule de Brent-Salamin, parfois appelé algorithme de Gauss-Legendre, qui permet de doubler le nombre de décimales exactes à chaque itération (ex: 25 tours → 45 millions de décimales exactes !)
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
Modifié par nagashima le 24/09/2014 à 16:30
salut,

Bien que je ne connaisse pas cette approximation (je la trouve assez étrange mais ce n'est pas mon domaine), voici une méthode plus simple pour appliquer ta formule (évite de s'embêter avec ton objet) :


var pi = 1;// pi, initialement
var x = 3;// 4*(1 - 1/x + ...)
var iMax = prompt("Combien d'itérations?");// demander à l'utilisateur
var i;// itérations déjà éxecutées
for(i=0;i<=iMax;i++) {
if( i%2 == 0)
pi -= (1/x) ;
else
pi += (1/x) );
x += 2;
}
pi *= 4;

alert("Pi vaut approximativement " + pi);


naga
Rejoignez-nous