MulaiMulai sekarang secara gratis

Distribusi input yang keliru

Anda akan melanjutkan dengan contoh pi pada latihan ini: A graph of a circle inside a square with randomly sampled points

Apa yang terjadi jika Anda mengubah distribusi probabilitas masukan dari distribusi uniform kontinu (random.uniform()) ke distribusi uniform diskret (random.randint())? Hasil Anda tidak akan andal, karena random.randint() akan mengambil bilangan bulat diskret, sedangkan random.uniform() mengambil angka float kontinu.

Perhatikan nilai pi taksiran yang dihasilkan simulasi ini. Karena distribusi probabilitas yang dipilih tidak tepat, nilainya tidak akan terlalu akurat! Memilih distribusi probabilitas yang benar sangat penting untuk simulasi Monte Carlo, dan kita akan membahas lebih rinci berbagai distribusi pada pelajaran berikutnya agar Anda yakin memilih distribusi yang tepat ke depannya.

random telah diimpor untuk Anda.

Latihan ini adalah bagian dari kursus

Simulasi Monte Carlo di Python

Lihat Kursus

Petunjuk latihan

  • Ambil koordinat x dan y pada interval dari -1 hingga 1 menggunakan random.randint() alih-alih fungsi random.uniform() yang benar seperti pada video.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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)
Edit dan Jalankan Kode