피보나치 수에 대한 프로그램
피보나치 수열이란?
피보나치 수열은 다음 항이 이전 두 항의 합인 수열입니다. 피보나치 수열의 처음 두 항은 0 다음에 1입니다.
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21 ....
수학적 용어로 피보나치 수의 시퀀스 Fn은 재귀 관계로 정의됩니다.
Fn = Fn-1 + Fn-2
어디
F0 = 0 , F1 = 1
피보나치 수열 프로그램을 작성하는 세 가지 방법에 대해 논의할 것입니다.
(1) 재귀 방법:
직접 재귀 구현 수학적 반복 관계인 간단한 방법이 위에 나와 있습니다.
//pseudo code
RFib(n)
{
if n=0 return 0;
else if n=1 return 1;
else return (RFib(n-1)+RFib(n-2));
}
시간 복잡도: T(n) = T(n-1) + T(n-2) 지수적입니다.
추가 공간: 함수 호출 스택 크기를 고려하면 O(n), 그렇지 않으면 O(1).
Run Replit
(2) 반복 방법:
다음 피보나치 수를 직렬로 얻는 데 필요한 전부이기 때문에 이전 두 수만 저장하여 재귀 방법에서 사용되는 공간을 최적화할 수 있습니다.
//pseudo code
IFib(n)
if n=0 return 0;
else if n=1 return 1;
else { a <= 0; b<=1;
for(i=2 to n) do
{ temp <= b;
b<= a+b;
a <= temp;
}
return b;
시간 복잡도: O(n)
추가 공간: O(1)
Run Replit
(3) 행렬 거듭제곱:
n > 1로 설정
시간복잡도 : O(log(n))
추가 공간 : 함수 호출 스택 크기를 고려하면 O(log(n)), 그렇지 않으면 O(1).
Run Replit
읽어 주셔서 감사합니다
Reference
이 문제에 관하여(피보나치 수에 대한 프로그램), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kkumargcc/program-for-fibonacci-numbers-1ce2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)