Bonjour,
Puisque google nous rappelle qu'on fête aujourd'hui la journée de pi (3.14159...), voilà un petit code pour le calcul de pi qui utilise le module "decimal".
Il existe de nombreuses façons de calculer Pi. Celle-ci est basée sur le calcul de l'arc sinus par série entière, et sur le fait que pi=6*arcsin(0.5):
Utilisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import division from decimal import * ############################################################################## def pidec(): """utilitaire pour le calcul de pi""" getcontext().prec += 2 x = Decimal("0.5") xc = x*x k = x s1 = k n = 0 while True: n += 1 k *= xc*(2*n-1)*(2*n-1)/(2*n*(2*n+1)) s2 = s1 + k if s2 == s1: break s1 = s2 getcontext().prec -= 2 return 6*s2
Et voilà donc le résultat: Pi avec 1000 décimales. Calcul fait en 7 secondes environ:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 getcontext().prec = 1001 p = pidec() print "pi=", p
Vous pouvez vérifier les résultats ici: http://www.brouty.fr/Maths/pi.htmlpi= 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989
Bon. je ne suis pas sûr que de calculer des nombres aussi grands soit d'un grand intérêt pratique, mais je vous souhaite de vous amuser autant que moi en le faisant...
Tyrtamos
Partager