Felaktiga indatafördelningar
Du fortsätter att arbeta med pi-exemplet i den här övningen:

Vad händer om du byter ut den kontinuerliga likformiga fördelningen (random.uniform()) mot den diskreta likformiga fördelningen (random.randint())? Resultaten blir opålitliga, eftersom random.randint() samplar diskreta heltal medan random.uniform() samplar kontinuerliga flyttal.
Lägg märke till det uppskattade pi-värdet som simuleringen genererar. Eftersom fel sannolikhetsfördelning har valts kommer resultatet inte att vara särskilt exakt! Att välja rätt sannolikhetsfördelningar är avgörande för Monte Carlo-simuleringar. I kommande lektioner går vi igenom olika fördelningar i detalj, så att du känner dig trygg i dina val framöver.
random har redan importerats åt dig.
Den här övningen är en del av kursen
Monte Carlo-simuleringar i Python
Övningsinstruktioner
- Sampla
x- ochy-koordinaterna i intervallet från -1 till 1 medrandom.randint()i stället för den korrekta funktionenrandom.uniform()som användes i videon.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
n = 10000
circle_points = 0
square_points = 0
for i in range(n):
# Sample the x and y coordinates from -1 to 1 using random.randint()
x = ____
y = ____
dist_from_origin = x**2 + y**2
if dist_from_origin <= 1:
circle_points += 1
square_points += 1
pi = 4 * circle_points / square_points
print(pi)