16.01.2015 Views

Le calcul de Pi par Bellard - LIFL

Le calcul de Pi par Bellard - LIFL

Le calcul de Pi par Bellard - LIFL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

pls_393_p080_085_<strong>de</strong>lahaye.xp_mm_26_05 4/06/10 17:38 Page 83<br />

R e g a r d s<br />

consiste à trouver <strong>de</strong>s relations entre une<br />

somme a 1<br />

+ a 2<br />

+ ... + a n<br />

+ a n +1<br />

+ ... + a 2n<br />

et les <strong>de</strong>ux sous-sommes a 1<br />

+ a 2<br />

+ ... + a n<br />

et a n +1<br />

+ ... + a 2n<br />

. Ces relations, exploitées<br />

systématiquement en redécoupant en <strong>de</strong>ux<br />

les morceaux, limitent la complexité totale<br />

du <strong>calcul</strong> et ren<strong>de</strong>nt alors compétitives <strong>de</strong>s<br />

séries comme celle <strong>de</strong>s Chudnowski. Ce<br />

découpage en <strong>de</strong>ux récursif, classique en<br />

algorithmique, est au cœur <strong>de</strong>s meilleurs<br />

algorithmes <strong>de</strong> tri ou d’évaluation <strong>de</strong> x n<br />

quand n est grand. Il se peut que Y. Kanada<br />

ait lui aussi exploité la métho<strong>de</strong> du scindage<br />

binaire pour son record <strong>de</strong> 2002.<br />

Une secon<strong>de</strong> idée, peu utilisée jusquelà<br />

pour , a été associée au procédé <strong>de</strong><br />

découpage. Puisqu’on manipule <strong>de</strong>s fractions<br />

dont les tailles <strong>de</strong>viennent <strong>de</strong> plus en<br />

plus gran<strong>de</strong>s, les simplifier en cherchant le<br />

PGCD (plus grand commun diviseur) du numérateur<br />

et du dénominateur évite une augmentation<br />

trop forte <strong>de</strong> la taille <strong>de</strong>s entiers<br />

manipulés. Pendant le <strong>calcul</strong>, comme pour<br />

celui du PGCD, il se révèle intéressant <strong>de</strong> représenter<br />

certains entiers comme <strong>de</strong>s produits<br />

<strong>de</strong> facteurs premiers. Il faut alors décomposer<br />

les entiers à chaque étape. Il n’était pas<br />

évi<strong>de</strong>nt que cette décomposition au « coût »<br />

important soit efficace ; c’est cependant ce<br />

que <strong>de</strong>s tests ont montré.<br />

<strong>Le</strong>s divisions nécessaires, en <strong>par</strong>ticulier<br />

quand on simplifie les fractions,<br />

ont été effectuées avec un algorithme fondé<br />

sur la métho<strong>de</strong> inventée <strong>par</strong> Isaac Newton<br />

en 1669 et présentée dans son ouvrage<br />

De analysi per aequationes numero terminorum<br />

infinitas. Cette métho<strong>de</strong> ramène<br />

le <strong>calcul</strong> d’une division à un petit nombre<br />

<strong>de</strong> multiplications qu’on sait traiter <strong>de</strong><br />

manière efficace (bien plus que la métho<strong>de</strong><br />

indienne qu’on apprend à l’école primaire).<br />

Pour les multiplications, là encore F. <strong>Bellard</strong>,<br />

très bien informé <strong>de</strong> tous les progrès<br />

récents dans le domaine, a soigneusement<br />

choisi et organisé leurs <strong>calcul</strong>s. Selon la<br />

taille <strong>de</strong>s entiers concernés, une technique<br />

ou une autre est appliquée, dont celle à<br />

base <strong>de</strong> transformées <strong>de</strong> Fourier rapi<strong>de</strong>s<br />

que F. <strong>Bellard</strong> a reprogrammée et optimisée<br />

spécifiquement.<br />

Si, pour mener tous les <strong>calcul</strong>s exploitant<br />

la série <strong>de</strong>s frères Chudnowski, F. <strong>Bellard</strong> travaille<br />

en base 2, il veut le résultat en base 10.<br />

La conversion finale, contrairement à ce que<br />

l’on penserait, n’est guère plus facile que le<br />

<strong>calcul</strong> <strong>de</strong> lui-même. F. <strong>Bellard</strong> l’a menée<br />

avec un algorithme ajusté et perfectionné.<br />

Dans un <strong>calcul</strong> à l’extrême limite <strong>de</strong> ce<br />

qui est possible, chaque point est important.<br />

En <strong>par</strong>ticulier, il faut être attentif pour<br />

utiliser au mieux la mémoire disponible,<br />

ne jamais perdre d’espace, ne pas avoir à<br />

manipuler <strong>de</strong>s données trop gran<strong>de</strong>s et<br />

ne pas avoir à écrire trop sur les disques<br />

utilisés pour stocker le gros <strong>de</strong>s informations<br />

durant les opérations. Notons que<br />

l’espace <strong>de</strong> travail sur disque nécessaire<br />

n’a été que <strong>de</strong> 6,42 fois la taille du résultat<br />

final (1,12 téraoctet) et que la mémoire<br />

rapi<strong>de</strong> interne <strong>de</strong> l’ordinateur était <strong>de</strong><br />

6 gigaoctets, soit 70 fois moins que la taille<br />

du résultat.<br />

Contrôler chaque<br />

erreur possible<br />

Quand on manipule <strong>de</strong>s nombres <strong>de</strong> plusieurs<br />

milliards <strong>de</strong> chiffres, le risque d’erreurs<br />

<strong>de</strong> copie ou <strong>de</strong> <strong>calcul</strong> faux à un moment<br />

du déroulement <strong>de</strong> l’algorithme <strong>de</strong>vient<br />

important, car les matériels informatiques<br />

ne sont jamais <strong>par</strong>faits (et il subsiste <strong>de</strong>s<br />

erreurs possibles dues aux arrondis que certaines<br />

<strong>de</strong>s métho<strong>de</strong>s choisies <strong>par</strong> F. <strong>Bellard</strong><br />

engendrent). Divers systèmes <strong>de</strong> contrôle<br />

et <strong>de</strong> re<strong>calcul</strong> ont donc été mis en place pour<br />

vali<strong>de</strong>r chaque étape du processus.<br />

Pour contrôler le résultat final <strong>de</strong><br />

manière globale, un second <strong>calcul</strong>, utilisant<br />

une autre formule <strong>de</strong> série (cette fois due<br />

au mathématicien indien Srinivasa Ramanujan,<br />

1887-1920) qui donne huit chiffres<br />

<strong>de</strong> plus pour chaque terme, avait été entrepris<br />

<strong>par</strong> F. <strong>Bellard</strong>. Malheureusement, une<br />

défaillance technique grave d’un disque l’a<br />

rendu inutilisable. C’est pourquoi F. <strong>Bellard</strong><br />

a utilisé à la place le <strong>calcul</strong> d’un paquet<br />

<strong>de</strong> chiffres binaires placés à l’extrémité <strong>de</strong>s<br />

chiffres <strong>calcul</strong>és en base 2. La concordance<br />

<strong>de</strong> ces chiffres avec ceux du <strong>calcul</strong> massif<br />

<strong>par</strong> la formule <strong>de</strong>s Chudnowski ne garantit<br />

pas <strong>de</strong> manière absolue le résultat <strong>de</strong><br />

F. <strong>Bellard</strong>, mais rend très improbable la présence<br />

d’une erreur : si les <strong>de</strong>rniers chiffres<br />

4. Statistiques sur <br />

A. Sur les 2 699 999 990 000 chiffres<br />

<strong>calcul</strong>és, l’équilibre entre 0, 1, 2, ... et 9<br />

est presque <strong>par</strong>fait.<br />

i Nombre <strong>de</strong> i Pourcentage<br />

0 269999112082 9,9999671<br />

1 269999947599 9,9999981<br />

2 270000971073 10,0000360<br />

3 269999844559 9,9999942<br />

4 270000455307 10,0000169<br />

5 269999596957 9,9999851<br />

6 269999464860 9,9999802<br />

7 269999767215 9,9999914<br />

8 270001112056 10,0000412<br />

9 269999718292 9,9999896<br />

B. La plus longue répétition <strong>de</strong> 0 en<br />

comporte 12 et se termine en position<br />

1 755 524 129 973. Dans les décimales<br />

connues, seul le 8 présente une<br />

répétition <strong>de</strong> longueur 13 qui se termine<br />

en position 2 164 164 669 332.<br />

i Longueur Emplacement<br />

0 12 1755524129973<br />

1 12 1041032609981<br />

2 12 1479132847647<br />

3 12 1379574176590<br />

4 12 1379889220413<br />

5 12 1618922020656<br />

6 12 1221587715177<br />

7 12 368299898266<br />

8 13 2164164669332<br />

9 12 897831316556<br />

C. Dans les décimales <strong>de</strong> , le 0, le<br />

plus long à se montrer, n’ap<strong>par</strong>aît qu’en<br />

position 32 après la virgule. Pour les<br />

séquences <strong>de</strong> <strong>de</strong>ux chiffres, la<br />

séquence 68, la plus longue à ap<strong>par</strong>aître,<br />

vient en position 606. Ce type <strong>de</strong> <strong>calcul</strong>s<br />

vérifie que est un nombre normal<br />

(toutes les séquences <strong>de</strong> chiffres<br />

ap<strong>par</strong>aissent à la même fréquence), ce<br />

qui n’a pas encore été démontré.<br />

Séquence Emplacement<br />

1 0 32<br />

2 68 606<br />

3 483 8555<br />

4 6716 99849<br />

5 33394 1369564<br />

6 569540 14118312<br />

7 1075656 166100506<br />

8 36432643 1816743912<br />

9 172484538 22445207406<br />

10 5918289042 241641121048<br />

11 56377726040 2512258603207<br />

© Pour la Science - n° 393 - Juillet 2010 Logique & <strong>calcul</strong> [83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!