주사위 던지기
무한 제너레이터를 만들어 봅시다! 목표는 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(____(____)))