programming

무한 시도 해서 a가 당첨되면 프로그램을 멈추는 소스


by Kitle · 2022. 07. 29.



오늘은 게시판에 질문이 들어온 프로그램을 만들어 보도록 하겠습니다.


무한 시도 해서 a가 당첨되면 프로그램을 멈추는 소스


시도 횟수까지 있으면 더 좋다고 합니다.


우선 질문 명제는 부족하므로 임의의 데이터를 제가 채워서 해볼게요.

1~100까지 숫자중에 1을 몇번만에 시도해서 뽑히는지 만들어 보겠습니다. 물론 시도 횟수도 만듭니다.


파이썬으로 구현


import random 
wining_number = 1
try_count = 0
while True:
result = random.randrange(1, 101)
try_count += 1
if result == wining_number:
break
print(f'{wining_number}번이 시도횟수 {try_count}회만에 당첨되었습니다.')


내용 설명

당첨될 숫자를 변경할 수 있으므로 변수 선언을 합니다.

시도 횟수도 궁금하므로 try_count도 넣습니다.

그다음은 random.randrange를 활용해 1-100 범위중에 하나의 숫자를 뽑습니다. 한번 뽑으면 카운트를 늘립니다.

뽑은 수가 내가 원하는 수가 맞으면 무한루프를 종료하고 결과를 출력합니다. 이때 카운트를 같이 출력해줍니다.



한계점

무한루프는 종료조건이 명확하지 않으면 종료가 이러나지 않을 수 있습니다. 꼭 범위내의 데이터를 넣을 수있게 예외처리를 추가하거나, 최대 카운트(시도횟수)를 제한하는 것이좋습니다.

지금같은 경우는 100개중에 하나뽑는것을 반복하지만, 로또처럼 기존에 뽑은것은 다시 뽑는데 넣지 않길 원한다면 해당 구조를 원하는 방식으로 변경해주세요. 


이상 마칩니다.