수학
피보나치 수열 계산기 (F(n) = F(n-1) + F(n-2))
BigInt를 사용하여 F(100)까지 피보나치 수를 정확하게 계산합니다. 황금비 φ로의 수렴, 뤼카 수열, 첫 N개 항의 막대 그래프를 시각화합니다.
팁
- 피보나치 수열은 F(n) = F(n−1) + F(n−2)로 정의되며, 시작 값은 F(1) = F(2) = 1입니다.
- 연속 항의 비율 F(n+1)/F(n)은 n이 증가할수록 황금비 φ ≈ 1.618로 수렴합니다. 수렴 표에서 이 과정을 확인할 수 있습니다.
- n > 78이면 JavaScript의 64비트 부동소수점 수로는 피보나치 수를 정확하게 표현할 수 없습니다. «n번째 항 찾기» 입력란은 BigInt를 사용하여 n = 100까지 정확하게 계산합니다.
- 피보나치 수는 자연계 곳곳에 나타납니다. 해바라기 씨앗의 나선 배열, 솔방울 비늘, 앵무조개 단면 등이 모두 피보나치 패턴(잎차례)을 따릅니다.
자주 묻는 질문
두 가지 관례가 모두 존재합니다. 이 도구는 일본 고등학교 수학에서 일반적인 1-인덱스 관례(F(1) = 1, F(2) = 1)를 사용합니다. F(0) = 0, F(1) = 1로 시작하는 0-인덱스 관례도 동등하게 유효하며 컴퓨터 과학에서 더 흔합니다.
뤼카 수는 피보나치와 동일한 점화식 L(n) = L(n−1) + L(n−2)를 사용하지만 초기값이 다릅니다: L(1) = 1, L(2) = 3으로, 1, 3, 4, 7, 11, 18, 29, …로 이어집니다. 황금비로의 수렴 속도는 피보나치 수열과 동일합니다.
비네 공식은 F(n) = (φⁿ − ψⁿ) / √5 (φ = (1+√5)/2, ψ = (1−√5)/2)라는 닫힌 형식 표현입니다. 이전 항을 계산하지 않고 n으로부터 임의의 피보나치 수를 직접 구할 수 있습니다. 실제로는 n이 클 때 부동소수점 오류가 발생하므로, 이 도구는 BigInt를 이용한 정수 반복법을 사용합니다.
여담 ― 피보나치, 황금비, 비네 공식
이 수열은 피사의 레오나르도(피보나치)가 1202년 저서 Liber Abaci에서 토끼 번식 모델로 유럽에 소개하면서 널리 알려졌습니다. 그러나 이와 동등한 수열은 기원전 200년경 인도의 수학자 핑갈라가 시의 운율을 연구하며 이미 다루었던 것으로 알려져 있습니다.
황금비 φ = (1 + √5) / 2 ≈ 1.618은 φ² = φ + 1을 만족하며, 이것이 피보나치 수가 황금비로 수렴하는 수학적 근거입니다. 비네 공식은 F(n) = (φⁿ − ψⁿ) / √5로 (여기서 ψ = (1 − √5) / 2 ≈ −0.618), 반복 계산 없이 n만으로 임의의 피보나치 수를 직접 구할 수 있습니다. 다만 n이 클 때는 부동소수점 오류가 발생하므로, 이 도구는 BigInt 정수 반복법을 사용합니다.