Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

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(____(____)))
Chỉnh sửa và Chạy Mã