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쪽) 참조). 그러나 조건식을 사용해 이 함수를 작성하면 메모화하기가 더 어렵다.