Les Grands Nombres, comment que c' est qu' on fait ?

Bien alors voilà je suis confronté à un petit probleme de Math/Info.

J’ aimerais calculer un grand nombres de décimales de Pi.
Mon probleme c’ est que j’ ai la formule, que j’ ai l’ algo, que ca fonctionne tres bien … jusqu’ à en fait 14 chiffres apres la virgules …

Donc en fait ce que je cherche c’ est un truc algorithmique pour pouvoir lfaire calculer par morceaux … Je ne vois pas d’ autres moyens, mais je ne vois pas non plus comment faire …

J’ utilise l’ algorithme de Gauss-Legendre :
on pose:

a=1
b=1/racine(2)
t=1/4
x=1

Puis on repete cette operation jusqu’ à ce que la difference entre a et b soit inferieure à la precision voulue :
y=a
a=(a+:P/2
b=racine(by)
t=t-x
(y-a)²
x=2*x

Et Pi nous est donné par :
Pi=(a+:P²/4t

Cette methode peux calculer plus de 33.5 millions de decimales …

[Edit] bon je n’ ai peut être pas été tres clair, en fait ce qui limite mon algo c’ est le type float/real, qui est limité à 15 chiffres… Ma question est donc comment contourner cette limitation ???

Un ptit coup de main serait le bien venu

Merci
Ce message a été édité par Greg_57 le 05/06/2004
Ce message a été édité par Greg_57 le 05/06/2004

Tu peux pas faire un tableau d’entiers, chaque entier ne codant qu’une décimale, et redéfinir toi-même les quatres opérations de base pour ce nouveau type ?

Je ne sais pas c’ est une possibilitée (surtout pour s’ arracher les neurones), mais j’ attend d’ autres reponses, avant de me lancer là dedans …

et avec long double ca irait pas ?
sinon te reste plus qu’a definir une classe toi meme je pense :confused:

Y’a un programme tout fait sur le site d’un prof pour calculer Pi:

Ce logiciel calcule jusqu’à 2400 décimales du nombre Pi. Le fichier d’information qui l’acompagne fournit le code source (C, Pascal-Delphi, Basic) et toute explication utile concernant l’algorithme de calcul et les notions mathématiques qui s’y rattachent.

Mais attention tricher SAIMAL !! Mais bon tu peux peut être t’en inspirer

http://gerard.ledu.free.fr/

Le plus simple, à mon sens, c’est effectivement la solution donnée par Cybernoid. Les fonctions *,-,+ sont triviales; la fonction / est plus compliquée; par contre là où à mon avis ca va être la merde, c’est la fonction racine carrée… bon courage
et pomper sauvagement c’est mal, et en général ca se voit

Tu as ici les algos pour les operations de base :
http://numbers.computation.free.fr/Constan…esentation.html

Tu peux aussi essayer d’utiliser la librairie GMP :
http://www.swox.com/gmp/

Et l’explication des algos utilises par GMP :
http://www.gnu.org/software/gmp/manual/htm…html#Algorithms

Ce message a été édité par Bleuzaï le 07/06/2004

Ok merci pour ces reponses !

En gros je vais me débrouiller tout seul
Je fini mes partiel cette semaine, et puis je vais me faire ca pendant les vacances, je viendrais faire un up du thread pour donner une solution au probleme (si j’ en trouve une).

Greg