더북(TheBook)

19.11 연습문제

연습문제 19-1

다음은 이항 계수를 재귀로 계산하는 함수다.

def binomial_coeff(n, k):

"""이항 계수를 계산한다. 'n에서 k를 선택한다'.

 

n: 시도 횟수

k: 성공 횟수

 

반환값: int

"""

if k == 0:

return 1

if n == 0:

return 0

 

res = binomial_coeff(n-1, k) + binomial_coeff(n-1, k-1)

return res

중첩 조건문을 사용해 함수 본문을 재작성하라.

참고: 이 함수는 같은 값을 반복해서 계산하기 때문에 효율이 매우 좋지 않다. 메모하기(memoizing)로 더 효율적으로 만들 수 있다(11.6 메모(194쪽) 참조). 그러나 조건식을 사용해 이 함수를 작성하면 메모화하기가 더 어렵다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.