PETIT PROGRAMME DELPHI POUR CALCULER LE NOMBRE PI AVEC UNE APPROXIMATION EPSILON

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 10 mars 2006 à 18:12
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 - 21 mars 2006 à 17:29
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/36464-petit-programme-delphi-pour-calculer-le-nombre-pi-avec-une-approximation-epsilon

elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
21 mars 2006 à 17:29
C'etait pour vous evitez de réinventer la roue !
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
21 mars 2006 à 03:52
trés drole Elguevel, mais cela n'est pas interressant pour la technique de calcul de pi.
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
14 mars 2006 à 17:56
uses System;

function Pi: Extended;

@+
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
10 mars 2006 à 20:28
>>> Machin

Pi := 4*ArcTan(1/5) - ArcTan(1/239);
Pi := Pi*4;

>>> Machin par Takano

Pi := 12*ArcTan(1/49) + 32*ArcTan(1/57) - 5*ArcTan(1/239) + 12*ArcTan(2/110443);
Pi := Pi*4;

>>> Machin par Stormer

Pi := 44*ArcTan(1/57) + 7*ArcTan(1/239) - 12*ArcTan(1/682) + 24*ArcTan(1/12943);
Pi := Pi*4;

>>> BBP originale

For k := 0 to INF do
Pi := Pi + (1/power(16,k))*( (4/(8*k+1))-(2/(8*k+4))-(1/(8*k+5))-(1/(8*k+6)))

>>> Ramajunan

For k := 0 to INF do
Pi := Pi + ((4*Fact(k))*(1103+26390*k))/(power(Fact(k),4)*power(396,4*k));
Pi := Pi * ((2*sqrt(2))/9801);

>>> Chudnovsky

For k := 0 to INF do
Pi := Pi + ( (Power(-1,k)*Fact(6*k)*(13591409+545140134*k)) )
/ ( Fact(3*k)*power(Fact(k),3)*power(640320,(3*k+3)/2));
Pi := Pi * 12;

>>> Bellard

For i := 0 to INF do begin
i10:= 10*i;
i4 := 4*i;
Pi := Pi + ( power(-1,i)/power(2,10*i) *
(-(32/i4+1)-(1/i4+3)-(256/i10+1)-(64/i10+3)-(4/i10+5)-(4/i10+7)+(1/i10+9)));
end;
Pi := Pi * (1/64);

>>> Archimede

Pi := 223/71;
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
10 mars 2006 à 18:12
Salut!

holalala, quelle vielle et lourde methode de calcul de Pi ... mais tout de meme toujours interressant!

Essaye plutot la methode BBP (S.Plouffe) ou BBP de F.Bellard, elle renvois Pi avec une precision de 16 decimale pour 6 passes et le calcul est beaucoup moins lourd et plus rapide.

ou alors tu peu integrer plusieurs formules ce qui serait mathematiquement plus interressant.

ensuite, coté code tu peu eviter toute la gestion d'epsilon en remplacant la saisie de celui-ci par un combobox avec des Eps predefinis (0.1, 0.01, 0.001, 0.0001, 0.00001 ect...)
ce serat plus simple.

par contre, change le Type Real de S,S0 et EPS, par le type Extended qui est plus precis.
Rejoignez-nous