도구스학업·수학

피보나치 수열 계산기

n번째 피보나치 수와 부분합을 정확하게 구하고, 이웃 항의 비가 황금비로 수렴하는 과정을 표로 보여 줍니다. 비네 공식이 수가 넘치기 전에 먼저 깨지는 지점도 확인할 수 있습니다.

번째

F(0)=0, F(1)=1부터 셉니다.

F(30)

832,040

6자리

F(1)부터 F(30)까지의 합2,178,308
제곱의 합1,120,149,658,760
F(30) / F(29)1.618033988748
황금비와의 차-1.691e-12
비네 공식 (배정밀도)정확값과 같음
nF(n)F(n)/F(n−1)φ와의 차
00
11
211-6.18e-1
3223.82e-1
431.5-1.18e-1
551.6666666674.86e-2
681.6-1.80e-2
7131.6256.97e-3
8211.615384615-2.65e-3
9341.6190476191.01e-3
10551.617647059-3.87e-4
11891.6181818181.48e-4
121441.617977528-5.65e-5
132331.6180555562.16e-5
143771.618025751-8.24e-6
156101.6180371353.15e-6
169871.618032787-1.20e-6
이웃 항의 비가 황금비 1.6180339887로 수렴합니다. 홀수 항은 φ보다 크고 짝수 항은 작아서 위아래로 번갈아 넘나들며 좁혀 들어갑니다. 오차는 매번 φ² ≈ 2.618배씩 줄어드는데, 그래서 열몇 항만 지나도 소수 열 자리가 맞습니다. 다만 배정밀도로는 40번째 언저리에서 φ와 구분되지 않아 표의 값이 더는 움직이지 않습니다.
비네 공식은 71번째부터 깨집니다 — 수가 넘치기 전에. F(n) = (φⁿ − ψⁿ)/√5이고 |ψ| < 1이라 F(n) = round(φⁿ/√5)로도 맞습니다. 그런데 부동소수점으로 φⁿ을 계산하면 오차가 쌓여 F(71)에서 이미 1이 어긋납니다. 정수로 안전한 한계인 2⁵³을 넘는 것은 F(79)부터인데, 공식이 그보다 여덟 항이나 먼저 무너지는 것입니다. 그래서 이 계산기는 BigInt로 더해 나가는 정확값을 씁니다.
부분합은 언제나 F(n+2) − 1입니다. 지금은 F(32) − 1 = 2,178,308입니다. 제곱의 합도 F(n)·F(n+1)로 딱 떨어지고, F(n−1)·F(n+1) − F(n)²은 언제나 ±1입니다(카시니 항등식, 지금은 +1).
gcd(F(m), F(n)) = F(gcd(m, n))이라 배수가 규칙적으로 나옵니다. 짝수는 3항마다(F(3)=2, F(6)=8, F(9)=34…), 3의 배수는 4항마다, 5의 배수는 5항마다 나옵니다. F(n)이 F(k)로 나누어떨어지는 것은 n이 k의 배수일 때뿐입니다.

이웃하지 않는 피보나치 수들의 합으로 유일하게 쪼개집니다.

2,026 = 1,597 + 377 + 34 + 13 + 5 쓰인 항은 F(17), F(14), F(9), F(7), F(5)입니다. 모든 양의 정수는 이웃하지 않는 피보나치 수의 합으로 단 한 가지 방법으로만 쓸 수 있습니다 (제켄도르프 정리). 큰 것부터 욕심껏 골라 빼기만 하면 그 표현이 그대로 나오고, 고른 것끼리 이웃하는 일이 저절로 생기지 않습니다. 여기서도 이웃 항 없이 5개로 쪼개졌습니다.
F(0)=0, F(1)=1로 시작하는 관례를 씁니다. F(1)=F(2)=1로 시작하는 책도 있어 항 번호가 하나씩 밀릴 수 있습니다. 제켄도르프 표현에서는 F(1)과 F(2)가 둘 다 1이라 표현이 유일하지 않게 되므로 F(2)부터만 씁니다.

계산 방법

  1. 1몇 번째 항을 구할지 넣습니다. F(0)=0, F(1)=1부터 셉니다.
  2. 2정확한 값과 자릿수, 부분합, 이웃 항의 비를 확인합니다.
  3. 3표에서 비가 황금비로 좁혀 들어가는 과정을 봅니다.
  4. 4아래 칸에 아무 수나 넣으면 이웃하지 않는 피보나치 수의 합으로 쪼개 줍니다.

자주 묻는 질문

앞의 두 항을 더하면 됩니다. F(0)=0, F(1)=1로 시작해 F(n) = F(n−1) + F(n−2)입니다. 재귀 없이 한 번에 구하려면 비네 공식 F(n) = (φⁿ − ψⁿ)/√5를 쓰는데, φ=(1+√5)/2이고 ψ=(1−√5)/2입니다. |ψ|가 1보다 작아 금방 0에 가까워지므로 F(n) = round(φⁿ/√5)로도 맞습니다.

부동소수점으로 φⁿ을 계산할 때 오차가 쌓이기 때문입니다. 자바스크립트의 배정밀도에서는 71번째 항에서 이미 1이 어긋납니다. 흥미로운 것은 정수로 안전한 한계인 2⁵³을 넘는 것이 79번째부터라는 점입니다. 수가 넘치기 전에 공식이 먼저 무너지는 셈이라, 정확한 값이 필요하면 BigInt로 더해 나가야 합니다.

F(1)부터 F(n)까지의 합은 F(n+2) − 1입니다. 예를 들어 1+1+2+3+5+8+13+21+34+55 = 143이고 F(12) − 1 = 144 − 1 = 143입니다. 제곱의 합도 F(n)·F(n+1)로 딱 떨어집니다.

비네 공식에서 |ψ|<1이라 ψⁿ이 사라지고 φⁿ만 남기 때문입니다. 홀수 항은 φ보다 크고 짝수 항은 작아서 위아래로 번갈아 넘나들며 좁혀 들어가고, 오차가 매번 φ² 곧 약 2.618배씩 줄어듭니다. 그래서 열몇 항만 지나도 소수 열 자리가 맞습니다.

모든 양의 정수를 이웃하지 않는 피보나치 수의 합으로 유일하게 쓰는 것입니다. 100 = 89 + 8 + 3처럼 쓰며, 큰 것부터 욕심껏 골라 빼기만 하면 그 표현이 그대로 나옵니다. 고른 것끼리 이웃하는 일이 저절로 생기지 않는 것이 이 정리의 핵심입니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • F(0)=0, F(1)=1로 시작하는 관례를 씁니다. F(1)=F(2)=1로 시작하는 책도 있어 항 번호가 하나씩 밀릴 수 있습니다.
  • 값은 BigInt로 계산하므로 자릿수가 늘어나도 정확합니다. 화면이 너무 길어지지 않도록 40자리를 넘으면 앞뒤 20자리만 보여 줍니다.
  • 이웃 항의 비는 배정밀도로 계산합니다. 40번째 언저리부터는 황금비와 구분되지 않아 값이 더는 움직이지 않습니다.
  • 제켄도르프 표현에서는 F(1)과 F(2)가 둘 다 1이라 표현이 유일하지 않게 되므로 F(2)부터만 씁니다.

함께 보면 좋은 도구

마지막 검증: 2026년 8월 30일 · 결과는 참고용 추정치입니다.