НачатьНачать бесплатно

Бросок кубика

Давайте создадим бесконечный генератор! Ваша задача — определить генератор simulate_dice_throws(). Он моделирует результаты бросков шестигранного кубика в виде словаря out. Каждый ключ — это возможный исход (1, 2, 3, 4, 5, 6). Каждое значение — список: первый элемент — количество раз, когда выпал данный исход, второй — отношение этого количества к общему числу бросков total. Например (при 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]
}

Подсказка: используйте функцию randint() из модуля random (он уже импортирован). Функция генерирует случайное целое число в заданном диапазоне (например, randint(1, 2) может вернуть 1 или 2).

Это упражнение является частью курса

Практика задач для собеседования по программированию на Python

Посмотреть курс

Инструкции к упражнению

  • Смоделируйте один бросок, чтобы получить новое число.
  • Обновите количество выпаданий и соответствующее соотношение.
  • Выполните yield обновлённого словаря.
  • Создайте генератор и смоделируйте 1000 бросков.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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(____(____)))
Редактировать и запускать код