본문 바로가기
SWEA

[SWEA] 1266. [S/W 문제해결 응용] 9일차 - 소수 완제품 확률 D6(python)

by 콩순이냉장고 2025. 1. 15.

 

문제 URL: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18Sx36IwACFAZN&categoryId=AV18Sx36IwACFAZN&categoryType=CODE&problemTitle=%EC%9D%91%EC%9A%A9&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

문제 접근법 : 

 

수학문제입니다.

2명의 작업자가 18번을 시행해서 

둘중하나가 적어도 소수번 실행할확률

= 1 - 둘다 소수가 아닐확률의합 이죠

성공확률이 p일때

n번 시행해서 k번 성공확률의 공식은 combination(n,k) * p^n * (1-p)^(n-k) 라는것을 알아야 풀수있습니다.

그리고 소수가아닌 0~18까지 소수가아닌수를 전부다 더하면됩니다.

 

소스코드:

from collections import defaultdict
# import sys
# sys.stdin = open("input.txt","r")
Test = int(input())
l = [0,1,4,6,8,9,10,12,14,15,16,18]
dp=[[1]*30 for i in range(30)]
for i in range(2,30):
    for j in range(1,i):
        dp[i][j]=dp[i-1][j-1]+dp[i-1][j]

for test in range(1,Test+1):
    sum = 0
    sum2 = 0
    a,b= map(int,input().split())
    a/=100
    b/=100
    for i in l:
        sum2+=dp[18][i]*(a**i)*((1-a)**(18-i))
        sum+=dp[18][i]*(b**i)*((1-b)**(18-i))
    print('#%d %.6f'%(test,1-sum*sum2))

 

궁금한점 혹은 모르는점 혹은 논리적인 오류등

어떤 질문이든 댓글은 언제나 환영입니다!!!