Calcul de pi - formule de john machin [dev-c++]

Soyez le premier à donner votre avis sur cette source.

Vue 6 933 fois - Téléchargée 178 fois

Description

et voila un dernier prog pour calculer pi, ki marche tres bien aussi mais c aussi le lus complique :
pi = 16 ( 1/5 - (1/3 * 1/5 exposant 3 ) + (1/5 * 1/5 exposant 5) - (1/7 * 1/5 exposant 7 ) + (1/9 * 1/5 exposant 9 ) - (...) ) - 4 ( 1/239 - (1/3 * 1/239 exposant 3) + (1/5* 1/239 exposant 5) - (1/7 1/239 exposant 7) + (...) )

Source / Exemple :


#include <stdio.h>
#include <math.h>

double expo(double nbr,int puiss)
{
  int     increment;
  double  resultat=1.0;
  for (increment=1 ; increment<=puiss ; increment++)
  {
    resultat=resultat*nbr;
  }
  return resultat;
}

double pi(int precision)
{
  double increment;
  double resultat=0;
  double nombre=0;

  for (increment=1.0 ; increment<=precision*10.0 ; increment=increment+2.0)
  {
    resultat=resultat+((1.0/increment)*expo((1.0/5.0),increment));
    nombre=nombre+((1.0/increment)*expo((1.0/239.0),increment));
    increment=increment+2.0;
    resultat=resultat-((1.0/increment)*expo((1.0/5.0),increment));
    nombre=nombre-((1.0/increment)*expo((1.0/239.0),increment));
  }
  resultat=resultat*16;
  nombre=nombre*4;
  resultat=resultat-nombre;
  return resultat;
}

int main()
{
  int precis;
  printf("Entrez le degre de precision : ");
  scanf("%d",&precis);
  printf("\nCalcul de PI avec l'algorithme de John Machin"pi(precis));
  printf("\nVraie valeur de PI :\n3,141592653589793238462643383279");
  getch();
  return 0;
}

Conclusion :


voila c le dernier sur pi que je met

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_nEUrOne
Messages postés
41
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2004

Pour stocker des nombre plus grands, tu peux toujours te faire une type comme le BCD

[ long long int ] e [long int]
Sverdlovsky
Messages postés
58
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
10 janvier 2005

Salut les potes, je connais une solution pour avoir plusieurs centaines de décimales de pi, voire plusieurs milliers...
Il faut utiliser les tableaux pour opérer des calculs.J'ai posté récemment un code qui calcule les grands entiers de la suite de Fibonacci, qui peuvent atteindre plusieurs centaines de chiffres pour composer chaque entier.
Pour les décimales de pi, les tableaux enregistrent de l'élément 0 à N un chiffre
calculé sous forme de code ASCII.Par exemple, le chiffre 0 devient en ascii le caractère numéro 48, jusqu'au chiffre 9 qui est le code ASCII n° 57.Merci d'avoir indiqué la formule pour calculer pi.Je sais ce qui me reste à faire, hehehe... A vos marques, prêt ? Codez !!!

Indices de calcul :
les puissances N de 5 et de 239 sont enregistrées dans des tableaux.
ensuite, un calcul de fractions et de produits puis de sommes modifient les chiffres dans ces tableaux...
Sverdlovsky
Messages postés
58
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
10 janvier 2005

Salut les potes, je connais une solution pour avoir plusieurs centaines de décimales de pi, voire plusieurs milliers...
Il faut utiliser les tableaux pour opérer des calculs.J'ai posté récemment un code qui calcule les grands entiers de la suite de Fibonacci, qui peuvent atteindre plusieurs centaines de chiffres pour composer chaque entier.
Pour les décimales de pi, les tableaux enregistrent de l'élément 0 à N un chiffre
calculé sous forme de code ASCII.Par exemple, le chiffre 0 devient en ascii le caractère numéro 48, jusqu'au chiffre 9 qui est le code ASCII n° 57.Merci d'avoir indiqué la formule pour calculer pi.Je sais ce qui me reste à faire, hehehe... A vos marques, prêt ? Codez !!!

Indices de calcul :
les puissances N de 5 et de 239 sont enregistrées dans des tableaux.
ensuite, un calcul de fractions et de produits puis de sommes modifient les chiffres dans ces tableaux...
Galett
Messages postés
115
Date d'inscription
jeudi 7 février 2002
Statut
Membre
Dernière intervention
21 mai 2005

essaye en te créant une nouvelle classe Grand Réel par exemple avec aucune limite de précision, c sur c chiant a faire, mais tu pourrais obtenir les décimales beaucoup plus loin :o)
cs_GoldenEye
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
Oui ce pourrait être une idée mais tu ne dépasseras pas les dizaines de décimales.
Pour un million de de chiffres après la virgule il faut s'y prendre autrement. Ce n'est pas une critique, juste une incitation à aller plus loin
Afficher les 7 commentaires

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.