Fibonacci number

(Redirected from Fibonacci numbers)

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

The Fibonacci numbers were invented by Leonardo of Pisa (ca. 1200), aka. Fibonacci, to describe the growth of a rabbit population. They form a sequence defined recursively by the following equations:

  • F(1) = 1
  • F(2) = 1
  • F(n + 2) = F(n) + F(n + 1).

The first Fibonacci numbers are

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, ...

These numbers described the number of pairs in a (somewhat idealized) rabbit population after n months if it was assumed that

  • the first month there is just one newly born pair,
  • newly born pairs become productive from their second month on, and
  • each month every pair begets a new pair.

Explicit formula

The term Fibonacci sequence is also applied more generally to any function g where g(n + 2) = g(n) + g(n + 1). These functions are precisely those with the form g(n) = aF(n) + bF(n + 1) for some a, b, so the Fibonacci sequences form a vector space with the functions F(n) and F(n + 1) as a basis.

As was pointed out by Johannes Kepler, the growth rate of the Fibonacci numbers, that is, F(n + 1) / F(n), converges to the golden mean, denoted φ. This is the positive root of the quadratic x2 - x - 1, so φ2 = φ + 1. If we multiply both sides by φn, we get φn+2 = φn+1 + φn, so the function φn is a Fibonacci sequence. The negative root of the quadratic, 1 - φ, can be shown to have the same properties, so the two functions φn and (1-φ)n form another basis for the space.

This gives us a formula for the normal Fibonacci sequence:

F(n) = φn/√5 - (1-φ)n/√5

As n goes to infinity, the second term converges to zero, so the Fibonacci numbers approach the exponential φn / √5, hence their convergent ratios. In fact the second term starts out small enough that the Fibonacci numbers can be obtained from the first term alone, by rounding to the nearest integer.

Computing Fibonacci numbers

Computing Fibonacci numbers by computing powers of the golden mean is not very practical except for small values of n, since rounding errors will accrue and floating point numbers usually don't have enough precision.

The straightforward recursive implementation of the Fibonacci sequence definition is also not advisable, since it would compute many values repeatedly (unless the programming language has a feature which allows the storing of previously computed function values). Therefore, one usually computes the Fibonacci numbers "from the bottom up", starting with the two values 1 and 1, and then repeatedly replacing the first number by the second, and the second number by the sum of the two.

For huge arguments and if a bignum system is being used, a faster way to calculate Fibonacci numbers uses the following matrix equation:

   / 1  1 \n        / F(n+1) F(n)  \ 
   \ 1  0 /    =    \ F(n)   F(n-1)/

and employs exponentiating by squaring.


The Fibonacci numbers are important in the run-time analysis of Euclid's algorithm to determine the greatest common divisor of two integers.

Matiyasevich was able to show that the Fibonacci numbers can be defined by a Diophantine equation, which led to his original solution of Hilbert's tenth problem.

The Fibonacci numbers occur in a formula about the diagonals of Pascal's triangle (see binomial coefficient).

An interesting use of the Fibbonaci sequence is for converting miles to kilometers. For instance, if you want to know about how many kilometers 5 miles is, take the Fibonaci number (5) and look at the next one (8). 5 miles is about 8 kilometers. This works because it so happens that the conversion factor between miles and kilometers is roughly equal to φ.

A logarithmic spiral can be approximated as follows: start at the origin of the cartesian coordinate system, move F(1) units to the right, move F(2) units up, move F(3) units to the left, move F(4) units down, move F(5) units to the right etc. Fibonacci number often occur in nature when logarithmic spirals are built from discrete units, such as in sun flowers or in pine cones.


A generalization of the Fibonacci sequence are the Lucas sequences. One kind can be defined thus:

  • L(0) = 0
  • L(1) = 1
  • L(n+2) = PL(n+1) + QL(n)

where the normal Fibbonaci sequence is the special case of P = Q = 1. Another kind of Lucas Sequence begins with L(0) = 2, L(1) = P. Such sequences have applications in number theory and primality proving.