Gieo xúc xắc
Hãy tạo một generator vô hạn! Nhiệm vụ của bạn là định nghĩa generator simulate_dice_throws(). Generator này sinh các kết quả của việc gieo xúc xắc 6 mặt dưới dạng một từ điển out. Mỗi khóa là một kết quả có thể xảy ra (1, 2, 3, 4, 5, 6). Mỗi giá trị là một danh sách: giá trị thứ nhất là số lần kết quả đó xuất hiện và giá trị thứ hai là tỷ lệ giữa số lần xuất hiện và tổng số lần gieo total. Ví dụ (khi total = 4):
{
1: [2, 0.5],
2: [1, 0.25],
3: [1, 0.25],
4: [0, 0.0],
5: [0, 0.0],
6: [0, 0.0]
}
Mẹo: dùng hàm randint() từ mô-đun random (đã được import). Hàm này sinh số nguyên ngẫu nhiên trong khoảng chỉ định (ví dụ randint(1, 2) có thể trả về 1 hoặc 2).
Bài tập này là một phần của khóa học
Luyện tập câu hỏi phỏng vấn lập trình bằng Python
Hướng dẫn bài tập
- Mô phỏng một lần gieo để lấy số mới.
- Cập nhật số lần và tỷ lệ xuất hiện.
- Yield từ điển đã cập nhật.
- Tạo generator và mô phỏng 1000 lần gieo.
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.
def simulate_dice_throws():
total, out = 0, dict([(i, [0, 0]) for i in range(1, 7)])
while True:
# Simulate a single toss to get a new number
num = ____
total += 1
# Update the number and the ratio of realizations
out[num][0] = ____
for j in range(1, 7):
out[j][1] = round(____/____, 2)
# Yield the updated dictionary
____
# Create the generator and simulate 1000 tosses
dice_simulator = ____
for i in range(1, 1001):
print(str(i) + ': ' + str(____(____)))