IniziaInizia gratis

Distribuzioni di input errate

Continuerai a lavorare con l'esempio di pi in questo esercizio: A graph of a circle inside a square with randomly sampled points

Cosa succede se cambi la distribuzione di probabilità in input dalla distribuzione uniforme continua (random.uniform()) alla distribuzione uniforme discreta (random.randint())? I risultati non saranno affidabili, perché random.randint() estrae numeri interi discreti, mentre random.uniform() estrae numeri float continui.

Fai attenzione al valore di pi stimato che questa simulazione genera. Poiché è stata scelta la distribuzione di probabilità sbagliata, non sarà molto accurato! Scegliere le distribuzioni corrette è essenziale per le simulazioni Monte Carlo. Nelle prossime lezioni entreremo più nel dettaglio delle diverse distribuzioni, così da metterti nelle condizioni di scegliere quella giusta con sicurezza.

random è già stato importato per te.

Questo esercizio fa parte del corso

Simulazioni Monte Carlo in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Campiona le coordinate x e y nell'intervallo da -1 a 1 usando random.randint() invece della funzione corretta random.uniform() mostrata nel video.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice