본문 바로가기
프로그램

[파이썬] 문제 : 동전 던지기 확률 계산

by 오디세이99 2022. 12. 1.
728x90
반응형

(문제)

동전 던지기 횟수를 입력 받아, 아래와 같이 정해진 횟수마다 앞면이 나온 확률을 출력하는 프로그램 제작할 것.

1) 1-10회는 매 횟수마다 출력하고, 11-100회는 10단위마다 출력
2) 함수는 던지기 횟수를 인수로 받으며 앞면이 나온 횟수를 반환
3) 동전 던지기는 random 모듈의 randint ()함수를 사용하여 0이면 앞면, 1이면 뒷면이라고 가정
4) 마지막의 총 ~번 동전 던지기의 확률 출력은 메인에서 함
5) 반복문으로 코딩 가능한 부분은 반드시 반복문을 이용함

[출력]
동전 던지기 시도 횟수를 입력 (1~100) :52
1번째까지 던지기에서 앞면이 나온 확률 : 0%
2번째까지 던지기에서 앞면이 나온 확률: 50%
3번째까지 던지기에서 앞면이 나온 확률: 66%
4번째까지 던지기에서 앞면이 나온 확률: 75 %
5번째까지 던지기에서 앞면이 나온 확률 : 60%
6번째까지 던지기에서 앞면이 나온 확률: 50%
7번째까지 던지기에서 앞면이 나온 확률: 57%
8번째까지 던지기에서 앞면이 나온 확률: 62 %
9번째까지 던지기에서 앞면이 나온 확률: 55%
10번째까지 던지기에서 앞면이 나온 확률: 60%
20번째까지 던지기에서 앞면이 나온 확률: 65%
30번째까지 던지기에서 앞면이 나온 확률: 53%
40번째까지 던지기에서 앞면이 나온 확률: 52%
50번째까지 던지기에서 앞면이 나온 확률: 54%

***********************************************
총 52번 동전 던지기에서 앞면이 나올 확률: 53%

 

 

(방법)

import random

n = int(input('동전 던지기 시도 횟수를 입력 (1~100) :'))  # 횟수 입력. 문자열을 정수로 변환

cnt = 0                        # 앞명 횟수
p = 0                          # 확률 결과 변수
for i in range(1, n+1):       # 횟수 만큼 반복. 1~1n+1을 출력할 번호 게산을 편하게 하기 위함
    s = random.randint(0, 1)   # 0 :앞면, 1:뒷면
    if s == 0:
        cnt += 1               # 앞면일때 Coun
    p = cnt * 100 / n          # 앞명일때 확룔 계산
    if i <= 10 or (i>10 and i%10 == 0):         # 1~10일때는 매번, 10보다 크면 10단위일때만 출력
        print(f"{i}번째까지 던지기에서 앞면이 나온 확률 : {p:.0f}%")
        
print('*'*50)                   # *를 50번 출력
print(f"총 {n}번 동전 던지기에서 앞면이 나올 확률: {p:.0f}%")    # 결과 출력

728x90
반응형

댓글