Un jour je me suis dit qu'il serait cool de calculer quelques décimales de PI grâce à un de ces algorithmes.
J'ai choisi l'algorithme suivant parce qu'il n'est pas trop compliqué (lol) et que le nombre de décimales calculées évolue proportionnelement au compteur. Ce rapport est 5/3, c'est à dire que pour calculer 3000 décimales, il faut effectuer 5000 boucles dans l'algorithme...
Voici la formule de calcul brute :
Bon ce n'est pas encore évident à exploiter donc voici une forme plus jolie... On peut définir la suite Un :
Alors PI = Uo + U1 + U2 + U3 + ...
C'est sur ces bases que j'ai construit mon algorithme de calcul de décimales
de pi. Les premières versions furent développées en
Pascal puis pas soucis de rapiditée d'exécution et afin d'atteindre
mon record, j'ai réécrit ce programme en assembleur 386.
J'ai alors atteind les 130000 décimales...
Téléchargez PI ! (assembleur) |
Toutefois la programmation en assembleur s'avère vite difficile
pour gérer des grandes quantités de mémoire... La
limitation à 130000 décimales en est la conséquence.
Je suis donc revenu à la programmation Pascal pour mon dernier
programme. Je l'ai compilé avec FreePascal
et je l'ai laissé tourner sur mon serveur Linux pendant... 10 jours
et j'ai atteind 1.000.992 décimale :-)
Téléchargez PI ! (pascal) |