시작하기무료로 시작하기

한 쌍 만들기

이제 시뮬레이션으로 확률을 추정해 보겠습니다. 친구 집에서 포커 게임에 초대되었다고 가정해 볼게요. 이 변형된 게임에서는 5장의 카드를 받고, 더 좋은 패를 가진 사람이 이깁니다. 시뮬레이션을 사용해 특정 패를 얻을 확률을 추정하겠습니다. 여기서는 최소한 한 쌍(같은 숫자의 카드 2장)을 얻을 확률을 추정해 볼게요. 한 쌍이란 슈트는 다르지만 숫자 값이 같은 카드 2장을 의미합니다(예: 하트 2, 스페이드 2, 그리고 다른 3장).

이 연습 문제를 마치면, 카드 게임에서 시뮬레이션으로 확률을 계산하는 방법을 알게 되실 거예요.

이 연습은 강의의 일부입니다

Python으로 하는 통계 시뮬레이션

강의 보기

연습 안내

  • 패 나누기: for 루프 안에서 deck_of_cards를 섞으세요. 그런 다음 앞의 5장을 hand로 선택합니다.
  • 숫자 값 세기: get() 메서드를 활용해, hand에 있는 각 numeric_value의 발생 횟수를 세는 딕셔너리 cards_in_hand를 만드세요.
  • 한 쌍인가요? cards_in_hand에서 가장 큰 값이 2 이상인지 확인해 최소 한 쌍이 있는지 판단하세요. 맞다면 two_kind를 1 증가시킵니다.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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))
코드 편집 및 실행