Я смотрел на канонический алгоритм плохих фибоначчи на днях:
public static int fib(int n)
{
// Base Case
if (n < 2)
return 1;
else
return fib(n-1) + fib(n-2);
}
Я сделал интересное наблюдение. Когда вы вызываете fib (n), то для k от 1 до n fib (k) называется точно fib (n-k + 1) раз (или fib (n-k) в зависимости от вашего определения fib (0)). Кроме того, fib (0) называется fib (n-k-1) раз. Затем это позволяет мне обнаружить, что в fib (100) есть ровно 708449696358523830149 вызовов функции fib.
Есть ли другие интересные наблюдения по этой функции, о которых вы знаете?
Дополнительное примечание: я знаю все интересные вещи о запоминании и т. Д. Я НЕ спрашиваю, как его оптимизировать.