Bonsoir, j'essaie d'appliquer la méthode de Monte-Carlo (pour obtenir une valeur approchée de pi) en Python mais je suis un peu surpris des résultats que j'ai obtenu car il me semblait qu'avec 539 354 tirages de points, j'étais censé obtenir une valeur approchée de pi à 10^-2 près. Mais j'obtiens une bien meilleure précision et je me demande donc si j'ai fait une erreur quelque part dans mon code ou s'il faut effectivement moins de tirages pour obtenir une précision d'un centième...
Voici mon code Python :
from random import random, choice
from math import pi
import numpy
from numpy.random import rand
def simulX():
x, y = random(), random()
return int(x**2+y**2<=1)
def calculer_Sn(n=1000):
x = rand(n)
y = rand(n)
return numpy.sum(x**2+y**2<=1)
def calculer_Pn(n=1000):
return 4*calculer_Sn(n)/n
def approxpi():
return calculer_Pn(539354)
#Sur 1000 essais, on obtient, a priori, en moyenne, un écart à pi très largement inférieur 10^-2
print(sum(abs(approxpi()-pi) for x in range(1000))/1000)
Les doublons nuisent au bon fonctionnement du forum et sont donc interdits. Si vous vous êtes trompé de section, il suffit de signaler votre sujet au staff pour qu'il le déplace au bon endroit.