Fibonacci系列在python中的动态编程

时间:2018-01-11 09:04:14

标签: python dynamic-programming fibonacci

# Program 1
fibSeries = {}
def fib(n):    
    a,b = 1,1
    for i in range(1,n+1):        
        if i <= 2: 
            f = 1
        else: 
            f = a + b
            a = b
            b = f
        fibSeries[i] = f
    return f

print (fib(number))
print (fibSeries)

# Program 2
fibSeries={}
def fib(n):
    for k in range(1,n+1):
        if k <= 2: f = 1
        else: f = fib(k-1) + fib(k-2)
        fibSeries[k] = f
    return f

print(fib(number))
print(fibSeries)

我已经开始动态编程了,我的第一个程序就是找到Fibonacci系列。我写了上面两个程序。我的第一个问题是这些程序中哪些是动态编程?这两个项目中哪一个更好?有没有比程序1更好的方法来更快地找到第n个斐波那契数?程序2比递归更好吗?以及如何找到在程序2中调用函数的次数?

0 个答案:

没有答案