Пара карт
Теперь воспользуемся симуляцией для оценки вероятностей. Представьте, что вас пригласили сыграть в покер у друга. В этом варианте игры каждому игроку раздают пять карт, и побеждает тот, у кого комбинация сильнее. С помощью симуляции вы оцените вероятность получения определённых комбинаций. Начнём с оценки вероятности получить хотя бы пару. Пара — это две карты одного достоинства, но разных мастей (например, двойка червей и двойка пик), плюс три другие карты.
По завершении упражнения вы будете знать, как применять симуляцию для расчёта вероятностей в карточных играх.
Это упражнение является частью курса
Статистическое моделирование на Python
Инструкции к упражнению
- Раздача карт: внутри цикла
forперемешайте колодуdeck_of_cards. Затем возьмите первые 5 карт в качестве рукиhand. - Подсчёт достоинств: используйте метод
get(), чтобы построить словарьcards_in_hand, который считает, сколько раз каждое значениеnumeric_valueвстречается вhand. - Есть ли пара? Проверьте, равно ли наибольшее значение в словаре
cards_in_handдвум или превышает его, — это означает, что у нас есть хотя бы пара. Если условие выполнено, увеличьте счётчикtwo_kindна единицу.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Shuffle deck & count card occurrences in the hand
n_sims, two_kind = 10000, 0
for i in range(n_sims):
____
hand, cards_in_hand = deck_of_cards[0:5], {}
for [suite, numeric_value] in hand:
# Count occurrences of each numeric value
cards_in_hand[numeric_value] = cards_in_hand.____(numeric_value, 0) + 1
# Condition for getting at least 2 of a kind
if ____ >=2:
two_kind += 1
print("Probability of seeing at least two of a kind = {} ".format(two_kind/n_sims))