Recursive Fibonacci Rabbits with Python

Let's say we have some magical rabbits. These rabbits never die. A pair of rabbits has 3 more pairs of rabbits in every litter, and they start producing litters after one generation. If you start with one pair of rabbits, how many rabbits will you have in 5 generations?

This was the premise of a problem I was working on this week in Python (check out the full problem here: http://rosalind.info/problems/fib/). I had to draw it out on my white board to wrap my head around it:



The idea behind this problem is that finding the number of rabbits in a given generation is similar to calculating a given number in the Fibonacci sequence and that it can be solved recursively, so that's how I did it.

Recursive rabbit solution:


It doesn't really have to be done recursively, though. I was talking through it with Steven, and we realized that the manual approach I had used on the whiteboard was also fairly efficient. Turns out it can be implemented in fewer lines of code as well.

Non-recursive rabbit solution:

Comments

Popular posts from this blog