x(n) = 2*x(n-1) - x(n-2)
n> = 3 및 x(1) = 0
및에 대한 방정식 에 따라 반복 시리즈의 30 번째를 찾아야합니다 x(2) = 1
.
피보나치 반복 논리에 따라 다음 코드를 작성했습니다.
def loop(n):
a = 0
b = 1
for i in range(30):
a, b = b, 2 * b - a
return a
에 적합 loop(30)
하면 30이 반환되지만 답은 29가되어야한다는 것을 수학적으로 알고 있습니다. 코드는 한 단계 앞선 것 같습니다. 누구든지 내 코드에서 잘못된 점을 지적 할 수 있습니까?
루프 n - 1
시간 만 실행해야합니다 . 할당이 때문에 a = 0
초기화합니다 x1
. 그런 다음 각 루프 후에 a
다음 값 (부터 x2
)으로 할당됩니다.
def loop(n):
a = 0
b = 1
for i in range(n - 1):
a, b = b, 2*b - a
return a
print(loop(30))
# 29
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다