We can see how evaluating a single Fibonacci number fans out into evaluating more and more numbers below it. This is enormously wasteful: we evaluate F(2)F(2) three times, for example. At most, to evaluate F(5)F(5), we should need to evaluate every Fibonacci number below it. We're doing worse than that!

plot

We can see how evaluating a single Fibonacci number fans out into evaluating more and more numbers below it. This is enormously wasteful: we evaluate F(2)F(2) three times, for example. At most, to evaluate F(5)F(5), we should need to evaluate every Fibonacci number below it. We're doing worse than that!

plot