한 쌍 만들기
이제 시뮬레이션으로 확률을 추정해 보겠습니다. 친구 집에서 포커 게임에 초대되었다고 가정해 볼게요. 이 변형된 게임에서는 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))