Week2-9. Probability(확률)
#예제: 사용자가 입력한 숫자의 팩토리얼을 출력하는 코드
#for
userNum = int(input('Number : '))
result = 1 #곱셈이므로 초기값을 0이 아닌 1로 설정한다.
n = 1
for i in range(1, userNum + 1):
result *= i
print('{}! = {}'.format(userNum,result))
#while
userNum = int(input('Number : '))
result = 1 #곱셈이므로 초기값을 0이 아닌 1로 설정한다.
n = 1
while n <= userNum:
result *= n
n += 1
print('{}! = {}'.format(userNum,result))
#재귀함수(recursion):정의 단계에서 자신을 호출하는 함수
def factorial(n):
if n == 0 or n == 1 :
return 1
return n * factorial(n-1) #factorial(n-1)호출
print(factorial(4))
#math.factorial
import math
userNum= int(input('Number : '))
print('{}! = {}'.format(userNum,math.factorial(userNum)))
#예제1: 9P4 코드
n = int(input('n : '))
r = int(input('r : '))
perm = 1
for i in range(n, (n - r), -1):
perm *= i
print('{}P{} : {}'.format(n,r,perm))
#예제2: 카드 7장을 나열하되, 2,4,7번 카드가 서로 이웃하도록 나열하는 경우의 수 출력 코드
total = int(input('Total : '))
neighbor = int(input('Neighbor : '))
perm = 1
factorial = 1
for i in range(total - neighbor + 1, 0, -1): # 1,(2,4,7),3,5,6 나열하는 경우의 수
perm *= i
for j in range(1, neighbor+1): #2,4,7끼리의 자리변동 경우의 수
factorial *= j
result = perm * factorial
print('Case : {}'.format(result))
#예제: 9C4를 출력하는 코드
n = int(input('n : '))
r = int(input('r : '))
perm = 1
factorial = 1
for i in range(n, n-r, -1):
perm *= i
for j in range(1, r+1):
factorial *= j
combination = perm / factorial
print('{}C{} : {}'.format(n,r,combination))
#예제:'Unlucky'6장, 'Lucky'4장, 총 10장 중 6장을 뽑을 때, 'Unlucky'3장, 'Lucky'3장을 뽑을 확률을 출력하는 코드
# nCr
def combination(n, r):
perm = 1
factorial = 1
for i in range(n, (n - r), -1):
perm *= i
for j in range(1, r + 1):
factorial *= j
return perm / factorial
#10C6
unlucky = int(input('unluky : '))
lucky = int(input('lucky : '))
total = unlucky + lucky
totalChosen = int(input('Number of chosen cards : '))
combination(total,totalChosen)
print('-'*10)
#6C3
unluckyChosen = int(input('Number of chosen unlucky cards : '))
combination(unlucky,unluckyChosen)
#4C3
luckyChosen = int(input('Number of chosen lucky cards : '))
combination(lucky,luckyChosen)
print('-'*10)
probability = combination(unlucky,unluckyChosen) * combination(lucky,luckyChosen) / combination(total,totalChosen)
print('Probability : {}'.format(round(probability,2)))