La méthode de Monte-Carlo pour estimer une surface : travail sur les lunules d'Hyppocrate
 
from math import sqrt
from matplotlib import pyplot as plt   # bibliothèque pour les graphiques
from random import uniform             # bibliothèque pour les nombres au hasard
from math import sqrt                  # bibliothèque pour les fonctions mathématiques
def est_dansC1(x,y):
    """retourne True si le point est dans le cercle de diamètre [AC]"""
    if x**2 + y**2 - 1 < 0:
        return True
    else:
        return False
def est_dansC0(x,y):
    """retourne True si le point est dans le cercle de centre O"""
   ...
    
n = 50000
x_rouge, y_rouge = [],[]    # création de listes de valeurs
x_bleu, y_bleu = [],[]
eff_rouge1 = 0
for _ in range(n):
    x = uniform(-1,1)
    y = uniform(0,1)
    if ...
        x_rouge.append(x)
        y_rouge.append(y)
        eff_rouge1 += 1   # eff_rouge1 = eff_rouge1 + 1
    else:
        ...
        
plt.plot(x_rouge, y_rouge,'r.')
plt.plot(x_bleu, y_bleu,'b.')
plt.show()
 
def est_dansC2(x,y):
    """retourne True si le point est dans le cercle de diamètre [BC]"""
    ...
def est_dansC0(x, y):
    # l'équation de c0 n'est pas la même dans ce repère !
    # Python redéfini la fonction sans avertissement...
    ...
    
# n est déjà défini, mais il faut réinitiliser les listes
x_rouge ...
x_bleu ...
eff_rouge2 = 0
for _ in range(n):
    ...
        
plt.plot(x_rouge, y_rouge,'r.')
plt.plot(x_bleu, y_bleu,'b.')
plt.show()
 
# estimation de la somme des aires des lunules
2019 est un nombre heureux !

$2019 \Rightarrow 2^2 + 0^2 + 1^2 + 9^2 = 86 \Rightarrow 8^2 + 6^2 = 100 \Rightarrow 1^2 + 0^2 + 0^2 = 1$