기초수학_조합 (★ 순서 중요 X)

jaam._.mini·2023년 11월 14일
0

📒Python 기초 수학

목록 보기
26/46

📝조합 이란?

  • n개에서 r개를 택하는 경우의 수
  • 조합은 순서가 중요하지 않다 <-> 순열은 순서가 중요하다

  • 예제


💻파이썬

예제_1

🏷️풀이

numN = int(input('numN 입력 : '))
numR = int(input('numR 입력 : '))
resultP = 1
resultR = 1
resultC = 1

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

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

resultC = int(resultP / resultR)
print('resultC: {}'.format(resultC))
resultP : 순열의 값
resultR : r의 값
resultC : 조합의 값

(1) [순열]의 값 먼저. n ~ (n-r+1)까지 1개씩 빼면서
    출력
    순열(resultP)을 구할 수 있게 됨

(2)[r!]를 구하기 위해서 연산. r ~ 1 까지  1개씩 뺴면서
    출력
    r! 값을 구함(resultR)

(3) [조합]을 구할 차례, 순열(resultP) / r!(resultR)
조합(resultC)을 구함



예제_2

🏷️풀이

numN = int(input('numN 입력 : '))
numR = int(input('numR 입력 : '))
resultP = 1
resultR = 1
resultC = 1

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

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

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

result = (1/resultC) * 100  ✔️ 
print('{}%'.format(round(result, 2)))  ✔️ 
✔️ (추가1) result = (1/resultC) * 100
      -> 확률 계산을 위해 1/조합 * 100
  
✔️ (추가2) print('{}%'.format(round(result, 2)))
      -> 실수가 예상되어 round(결과, 소수점자리) 사용

출처/참고 제로베이스 데이터 스쿨
profile
비전공자의 데이터 공부법

0개의 댓글