BLACK FRIDAY

осталось 3 дня

Скидка 10% и подарок на выбор — при покупке одной программы
При покупке двух программ  — вторая со скидкой 50%

Python: Теория вероятности

Python: Декларативное программирование 1 сообщение
Обновлено: 14 сент., 02:37
48
Студентов
75%
Завершения

Игральная кость – шестигранный кубик, который бросается несколько раз.

src/solution.py

Реализуйте функцию calculate_probabilities(), которая принимает на вход историю подбрасывания кубика в виде списка и возвращает словарь. Ключом этого словаря служит число из списка, а значением – ещё один словарь, в котором ключи – это числа, выпавшие сразу после первоначального числа, а значения – вероятность их выпадения.

Например, если передать на вход список [1, 3, 1, 5, 1], итоговый словарь будет выглядеть так:

{
  1: {3: 0.5, 5: 0.5},
  3: {1: 1},
  5: {1: 1},
}

После числа 1 выпадали числа 3 и 5 с равной долей вероятности 0.5. А после чисел 3 и 5 всегда выпадала единица, что даёт вероятность в 1.

calculate_probabilities([])  # {}
calculate_probabilities([1, 3, 1, 5, 1, 2, 1, 6])
# {
#   1: {
#       2: 0.25,
#       3: 0.25,
#       5: 0.25,
#       6: 0.25,
#     },
#   2: {1: 1},
#   3: {1: 1},
#   5: {1: 1},
#   6: {},
# }

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов