I do not know the mathematics in this algorithm and can use some help.
Algorithm:
if n<2 then return n else return fibonacci(n-1) + fibonacci(n-2)
Statement
n <2 represents O (1)Time n> = 2 is O (1)Return n is O (1) Time n> = 2 - Return fib (n-1) + fib (n-2) -
and the time n> = 2 is T (n-1) + T (n-2) + O (1)
Total: O (1) T (n-1) + T (n-2) + O (1)T (n) = O (1) if n <2T (n) = T (n-1) + T (n-2) + O (1) if n> = 2
, , . , , .
, , , . , , , . , .
, :
F(n): if n<2 then return n else return F(n-1) + F(n-1)
: fib(k) , C*2^k k < n, fib(n)
fib(k)
C*2^k
k < n
fib(n)
T(n) = T(n-1) + T(n-2) + K < C*2^(n-1) + *2^(n-2) + K = 0.75*C*2^n + K < C*2^n
C ( C > K/0.25, 2^n > 1). , T(n) < C*2^n, .. T(n) = O(2^n).
C
C > K/0.25
2^n > 1
T(n) < C*2^n
T(n) = O(2^n)
( T(n) - fib(n), K - , fib(n), [t214 > fib(b-1) [].)
T(n)
K
fib(b-1)
You need to solve the recurrence equation:
T(0) = 1 T(1) = 1 T(n) = T(n-1) + T(n-2), for all n > 1
Source: https://habr.com/ru/post/1734810/More articles:Streaming dynamic files from Spring MVC - javaSegfault when I delete an object - GDB says in free () - c ++How to add hbm2java task to Ant in NetBeans - javaC # Radiation of a dynamic method Delegation to load problems with a parameterized constructor - constructorВключая вычисления по связанным данным в запросе ActiveRecord - ruby-on-railsHow to reduce the amount of memory when creating a hierarchy of model objects in Cocoa? - iphoneFinding Software For iPhone - iphoneИдея проекта вычислительной лингвистики с использованием Hadoop MapReduce - mapreduceHow to create a "truly extensible" class - oopWhy is RLIMIT_STACK lost after fork or exec on linux? - linuxAll Articles