Phân phối đầu vào sai
Bạn sẽ tiếp tục làm việc với ví dụ số pi trong bài tập này:

Điều gì xảy ra nếu bạn đổi phân phối xác suất đầu vào từ phân phối đều liên tục (random.uniform()) sang phân phối đều rời rạc (random.randint())? Kết quả sẽ không đáng tin cậy, vì random.randint() lấy mẫu các số nguyên rời rạc, trong khi random.uniform() lấy mẫu các số thực liên tục.
Hãy chú ý đến giá trị pi ước lượng mà mô phỏng này tạo ra. Do đã chọn sai phân phối xác suất, kết quả sẽ không chính xác lắm! Việc chọn đúng phân phối xác suất là tối quan trọng với mô phỏng Monte Carlo, và chúng ta sẽ đi sâu vào các phân phối khác nhau trong các bài học tiếp theo để bạn yên tâm rằng mình đang chọn đúng phân phối.
random đã được nhập sẵn cho bạn.
Bài tập này là một phần của khóa học
Mô phỏng Monte Carlo với Python
Hướng dẫn bài tập
- Lấy mẫu tọa độ
xvàytrong khoảng từ -1 đến 1 bằngrandom.randint()thay vì hàm đúng làrandom.uniform()được dùng trong video.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)