1
Scheme에서 기본 재귀 함수를 구현하려고하는데이를 올바르게 작성했는지 확인하기 위해 동일한 함수를 작성했습니다. Scheme과 Python 구현은 1에서 7까지의 값에 대해 동일한 답을 반환합니다. 그러나 값은 이후에 발산하기 시작합니다. 왜 이런 일이 일어 났는지 나는 이해할 수 없다.Scheme과 Python에서 구현 된 재귀 방정식의 리턴 값이 다른 이유는 무엇입니까?
# Function to be implemented
f(n) = n, if n<4
f(n) = f(n-1) + 2f(n-2) + 3f(n-3) + 4f(n-4), otherwise
계획
(define (f n)
(if (< n 4)
n
(+ (f (- n 1)) (* 2(f(- n 2))) (* 3(f (- n 3))) (* 4(- n 4)))))
(f 1)
(f 2)
(f 3)
(f 4)
(f 5)
(f 6)
(f 7)
(f 8)
(f 9)
(f 10)
1
2
3
10
26
63
157
377
900
2149
에게
파이썬 (이 숙제입니다하지만이 과제에서 요구되는 질문을하지, 난 그냥이 구현은 다른 값을 반환하는 이유를 이해 할)def f(n):
if n<4:
return n
else:
return f(n-1) + 2*f(n-2) + 3*f(n-3) + 4*f(n-4)
print (f(1))
print (f(2))
print (f(3))
print (f(4))
print (f(5))
print (f(6))
print (f(7))
print (f(8))
print (f(9))
print (f(10))
1
2
3
10
26
63
157
401
1008
2533
그것은 오히려 전체 응답에 비해 코멘트에 오타 질문에 대한 답변을 일반적으로 가장 좋습니다. 이러한 질문은 향후 독자에게 도움이되지 않으므로 시스템은 1 주 정도 지나면 자동으로 제거하려고 시도합니다. 그러나 긍정적 인 채점 응답은 그 과정을 방해합니다. –