Calculer une valeur approximative de Pi

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 540 fois - Téléchargée 11 fois

Contenu du snippet

/* formule: pi = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 ...)
La variable iMax détermine le nombre d'itérations de la boucle.
Plus le nombre est élevé, plus pi sera exact (vers 100 millions pour un résultat sérieux)
Script créé par hautparleur, hpapps@yahoo.fr
Cette formule ne donne pas un nombre exact de Pi, mais une valeur approximative.


*/
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
var obj = "-";// alternance +/-
for(i=0;i<=iMax;i++) {
    if(obj == "-") {
        pi -= 1 / x;
        obj = "+";
    } else if(obj == "+") {
        pi += 1 / x;
        obj = "-";
    }
    x += 2;
}
pi *= 4;
alert("Pi vaut approximativement " + pi);

A voir également

Ajouter un commentaire

Commentaires

nagaD.scar
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16 -
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
KX
Messages postés
16005
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 août 2019
86 -
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 !)
hautparleur
Messages postés
213
Date d'inscription
mercredi 9 janvier 2013
Statut
Membre
Dernière intervention
13 mai 2016
> KX
Messages postés
16005
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 août 2019
-
merci, je vais essayer d'autres formules.

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.

Du même auteur (hautparleur)