2012-03-01 4 views
3

Je suis en fait très nouveau à C, mais pour un projet, j'aimerais pouvoir calculer la valeur de Pi de 1 million à au moins 32 millions de décimales. Fondamentalement, comme ce que SuperPi/HyperPi fait pour l'analyse comparative d'un processeur.Calculer Pi en C jusqu'à quelques millions de chiffres

Mais évidemment, la bibliothèque C standard est incapable de cela.

Quelle bibliothèque puis-je utiliser et quel algorithme utiliser pour cette tâche?

Et la précision aussi, n'importe qui peut cuire un ballonnement rand() et l'appeler la «valeur ultime de Pi».

Mon compilateur est GCC, donc si possible, je voudrais que la bibliothèque puisse compiler dessus (j'ai la bibliothèque BigNum).

+0

Voulez-vous le calculer vous-même, ou utiliser une solution prête à l'emploi (comme par exemple 'printf ("% s \ n ", expandpi (1000000));')? – pmg

+0

Calcul moi-même. – farmdve

+1

Vous pourriez aimer le [article wikipedia sur PI] (http://en.wikipedia.org/wiki/Pi#Computation_in_the_computer_age), si vous ne l'avez pas encore lu :) – pmg

Répondre

2

J'ai utilisé l'algorithme quadratique de there avec succès. Je suggère MPFR pour la partie de la bibliothèque.

+0

+1, je recommanderais certainement les algorithmes AGM sur n'importe lequel des algorithmes de la série. D'autant plus que les algorithmes de séries ne sont efficaces que s'ils sont associés à d'autres méthodes obscures. – Mysticial

+0

@Mysticial: et la théorie est tout à fait compréhensible (et jolie) avec le calcul de niveau d'entrée. –

Questions connexes