# rerun Fernando's script to load in css %run talktools import random from math import exp, sqrt, pi def f(u): return(exp(-u**2/2)/sqrt(2*pi)) def loopy_monte(N): hits = 0 for count in range(N): x = random.uniform(-5,5) y = random.uniform(0,0.5) hits = hits + (y < f(x)) estimate = hits / float(N) * (0.5*10) return(estimate) loopy_monte(10**6) %timeit loopy_monte(10**6) import numpy as np def numpy_f(u): return(np.exp(-u**2/2)/np.sqrt(2*np.pi)) def numpy_monte(N): x = np.random.uniform(-5,5,N) y = np.random.uniform(0,0.5,N) hits = np.sum(y