import matplotlib.pyplot as plt
import random as rd
import numpy as np





def alea(a):
    aux=-a+2*rd.random()*a
    return aux


def MC(n): 
    plt.clf()
    T=np.linspace(-np.pi,np.pi,200)
    xt=np.cos(T)*(3)
    yt=np.sin(T)*(2)
    cerclext=np.cos(T)
    cercleyt=np.sin(T)

    x=n*[0]
    y=n*[0]
    
    nb=0
    Dedans_x=[]
    Dedans_y=[]
    Dehors_x=[]
    Dehors_y=[]
    for i in range(n):
        x[i]=alea(4)
        y[i]=alea(3)
        if x[i]**2/9+y[i]**2/4<1:
            nb+=1
            Dedans_x.append([x[i]])
            Dedans_y.append([y[i]])
            
        else:
            Dehors_x.append([x[i]])
            Dehors_y.append([y[i]])
            
    plt.scatter(Dedans_x,Dedans_y,s=1,color='black') #s donne la grosseur des points
    plt.scatter(Dehors_x,Dehors_y,s=1,color='g') #s donne la grosseur des points    
    plt.title('Ellipse')    
    plt.xlabel('x')
    plt.ylabel('y')
    plt.axis('equal') 
    plt.plot(xt,yt,linewidth=1,color='red')
    
    
    print('Valeur approchée (MonteCarlo) avec ',n,'points : ',
    nb/n*48)
    print('Valeur exacte (avec les intégrales doubles) : ',6*np.pi)
    plt.show()

MC(3000)

#close() sinon pas de dessin
