시작하기무료로 시작하기

주사위 던지기

무한 제너레이터를 만들어 봅시다! 목표는 simulate_dice_throws() 제너레이터를 정의하는 거예요. 이 제너레이터는 6면체 주사위 던지기 결과를 사전 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]
}

팁: random 모듈의 randint() 함수를 사용하세요(이미 import되어 있음). 지정한 구간에서 무작위 정수를 생성합니다(예: 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(____(____)))
코드 편집 및 실행