commandes utiliseés : re.compile(), findall()

Qu'y a-t-il dans Π ?

Exploration des décimales de Π avec Python

Dix millions de décimales

Avec le module Sympy, on peut obtenir facilement 1 million ou 10 millions de décimales de Π (le temps de calcul est respectivement 9 secondes et 159 secondes)

Le calcul est basé sur l'algorithme de Chudnovsky


from sympy.mpmath import pi, mp
#nb de decimales
mp.dps=10**6+1
#pi en chaine de caracteres
b=str(pi)
#ecriture dans un fichier
dec = open("dec6.txt","w")
dec.write(b)
dec.close()

Télécharger le script Python

Télécharger le fichier donnant un million de décimales de π (Moins d'un Mo)

Télécharger le fichier donnant dix millions de décimales de π (9,6Mo)

Quelques curiosités

On retrouve π

On obtient la séquence 314159 à la 176 451e décimale

Progression

On obtient la séquence 1234567 à la 9 470 344e décimale

On trouve un octet

On obtient la séquence 01100111 à la 463 987e décimale

Plus loin, on trouve la séquence 0000000100 à la 3 794 572e décimale

La séquence la plus étonnante : 1111100000 à la 6 926 656e place.

répétitions

On trouve 2 séquences de 7 777 777

Tiens, le diable

Huit apparitions…

Le 11 septembre

Chiffres impairs, etc.

Une séquence de 24 chiffres impairs consécutifs à la 2 493 199e décimale 159759359717751539993711

une autre séquence étonnante 0000050500


Pour chercher à votre tour

Avec un éditeur de texte

En téléchargeant un des fichiers proposés plus haut et en l'ouvrant avec un éditeur de texte, vous pouvez faire des recherches (en général dans Édition chercher).

Avec Python

En utilisant les expressions régulières , on peut faire des recherches sophistiquées.

Par exemple, on peut chercher toutes les chaînes formées d'au moins 8 caractères dans {0;1}.

#module pour les exp reg
import re
#chercher une chaine d au moins huit 0 et 1
#expression reguliere
motif=re.compile('[01]{8,}')
dec = open("pi07.txt","r")
#lecture du ficier
b=dec.read()
resu=motif.findall(b)
print resu
dec.close()

fait le 18 et 19 février 2009