>>> import random, math >>> def monteCarlo(f, a, b, n): ... return sum([f(random.uniform(a, b)) for i in range(n)]) * (b - a) / n ... >>> def pointMilieu(f, a, b, n): ... return sum([f(a + (i + 0.5) * (b - a) / n) for i in range(n)]) * (b - a) / n ... >>> print(monteCarlo(lambda x : 1 / x, 1, 2, 10**5)) 0.6936520468798466 >>> print(pointMilieu(lambda x : 1 / x, 1, 2, 10**5)) # pour comparaison 0.6931471805568249 >>> print(math.log(2)) # pour comparaison 0.6931471805599453