Question #162577

Modify the Monte Carlo simulation to plot points in the entire circle. You will have to adjust the calculated value of pi accordingly.



Expert's answer


import random as rnd
from matplotlib import pyplot as plt


n = 2500 # number of iterations


ins_number = 0
inside_x = []
inside_y = []
outside_x = []
outside_y = []


for i in range(n):
    x = rnd.uniform(-1,1)
    y = rnd.uniform(-1,1)
    if pow(x, 2) + pow(y, 2) <= 1:
        inside_x += [x]
        inside_y += [y]
        ins_number += 1
    else:
        outside_x += [x]
        outside_y += [y]


pi = 4*ins_number/n
print(pi)


fig = plt.figure() 
plt.plot(inside_x, inside_y, "bo")   # blue o inside circle
plt.plot(outside_x, outside_y, "ro") # red o outside of circle
plt.savefig("plot.png") 
LATEST TUTORIALS
APPROVED BY CLIENTS