I tried many algorithms for finding Ο using Monte Carlo. One solution (in Python) is the following:
def calc_PI(): n_points = 1000000 hits = 0 for i in range(1, n_points): x, y = uniform(0.0, 1.0), uniform(0.0, 1.0) if (x**2 + y**2) <= 1.0: hits += 1 print "Calc2: PI result", 4.0 * float(hits) / n_points
The sad part is that even with 1,000,000,000 accuracy is VERY bad ( 3.141 ... ).
Is this the maximum accuracy this method can offer? The reason I choose Monte Carlo was that it is very easy to break it up in parallel parts. Is there another algorithm for Ο that is easily broken into pieces and computed?
source share