대부분의 구현은이 예에서와 같이 2 차원 배열을 사용한다 : http://www.csl.mtu.edu/cs4321/www/Lectures/Lecture%2015%20-%20Dynamic%20Programming%20Binomial%20Coefficients.htm이항 계수는
http://www.geeksforgeeks.org/dynamic-programming-set-9-binomial-coefficient/
질문이 이유 단지 이런 단일 차원 배열을 사용하여 계산한다 :
def C(n, r):
memo = list()
if (r > int(n/2)):
r = n - r
memo.append(1.0)
for i in range(1,r+1):
now = ((n-i+1)*memo[i-1])/i
memo.append(now)
return memo[r]
을 기본적 재귀 공식을 사용하여 다음을(n, r-1)
이것은 2 차원 논리가 O (r) 복잡도를 갖는 반면, nr) 복잡성.
여기에 뭔가가 있습니까?
배열을 전혀 필요로하지 않는다는 것을 지적하고 싶습니다. 단 하나의 변수 만 있습니다. –