제로베이스 기초수학(27~30)

ningbbang·2023년 3월 28일
0

Zerobase DS13

목록 보기
10/48

1. 조합
n개에서 r개를 택하는 경우의 수 (순열과의 차이는 순서가 존재하지 않음)
nCr = nPr / r!
nCr = n! / (r! (n-r)!) (단, 0 < r <= n)
ex)
8C3 = 8! / (3!
(8 - 3)!)

#조합

numN = 8
numR = 3
resultP = 1
resultR = 1
resultC = 1

for i in range(numN, (numN-numR), -1):
    print('n : {}'.format(i))
    resultP = resultP * i

print('resultP : {}'.format(resultP))

for i in range(numR, 0, -1):
    print('n : {}'.format(i))
    resultR = resultR * i

print('resultR : {}'.format(resultR))

resultC = int(resultP / resultR)
print('resultC : {}'.format(resultC))

2. 확률
모든 사건에서 특정 사건이 일어날 수 있는 수를 나타낸 것
모든 사건 : 표본 공간(sample) / 특정 사건 : 사건(event)

#확률
def proFun():
    numN = int(input('numN 입력'))
    numR = int(input('numR 입력'))

    resultP = 1
    resultR = 1
    resultC = 1

    for n in range(numN, (numN - numR), -1):
        resultP = resultP * n
    print('resultP = {}'. format(resultP))

    for n in range(numR, 0, -1):
        resultR = resultR * n
    print('resultR = {}'. format(resultR))

    resultC = int(resultP / resultR)
    print('resultC = {}'.format(resultC))

    return resultC

sample = proFun()
print('sample : {}'.format(sample))

event1 = proFun()
print('sample : {}'.format(event1))

event2 = proFun()
print('sample : {}'.format(event2))

probability = (event1 * event2) / sample
print('probability : {}%'.format(round(probability * 100, 2)))
profile
HR Anaylist!

0개의 댓글