from random import * from math import * import matplotlib.pyplot as plt def montecarlo(n) : # n étant le nombre de tirages de points aléatoires à effectuer nb_points_endessous = 0 for compteur in range(n) : x = random() # x prend une valeur aléatoire entre 0 et 1 selon la loi uniforme sur [0;1] y = random() if y < sqrt(1 - x**2) : nb_points_endessous = nb_points_endessous + 1 # Gare à la double indentation ! f = nb_points_endessous / n return f def montecarlo2(n) : # n étant le nombre de tirages de points aléatoires à effectuer plt.axis("equal") # repère orthonormé plt.grid() ## initialisation des variables nb_points_endessous = 0 X_liste_rouge = [] Y_liste_rouge = [] X_liste_bleu = [] Y_liste_bleu = [] for compteur in range(n) : x = random() # x prend une valeur aléatoire entre 0 et 1 selon la loi uniforme sur [0;1] y = random() if y < sqrt(1-x**2) : nb_points_endessous = nb_points_endessous + 1 X_liste_rouge.append(x) # le point est en-dessous, il est rouge Y_liste_rouge.append(y) # On stocke ses coordonnées dans les listes "rouges" else : X_liste_bleu.append(x) # le point est en-dessous, il est rouge Y_liste_bleu.append(y) # On stocke ses coordonnées dans les listes "bleues" f = nb_points_endessous / n # Tracé du graphique : les 2 tableaux de valeurs # Premier tableau : les points rouges plt.plot(X_liste_rouge , Y_liste_rouge , "r.") # Second tableau : les points bleus plt.plot(X_liste_bleu , Y_liste_bleu , "b.") # Affichage du graphique plt.show() # renvoi de la fréquence return f