1. 斐波那契数列四种计算方法

  1. eg:0,1,1,2,3,5,8,13.......
  2. 计算斐波那契数列三种方法
    2.1 递归
def f(n):
   if n==0:
       return 0
   elif n==1:
       return 1
   else:
       return f(n-1)+f(n-2)

for i in range(10):
   print("f({}):{}".format(i,f(i)))

2.2 传入字典,计算过的值先存储,下次计算就会快

def a(n,memo={}):
    if n in memo:
        return memo[n]
    if n==0:
        return 0
    elif n==1:
        return 1
    else:
        ans = f(n-1)+f(n-2)
        memo[n]=ans
        return ans

2.3 @cache 将部分数据存储在内存中,以便下次能够更快地访问这些数据

from functools import lru_cache
@lru_cache()
def f(n):
    if n==0:
        return 0
    elif n==1:
        return 1
    else:
        return f(n-1)+f(n-2)

2.4 上面都是TOP_DOWN,下面是DOWN_TOP的方法

def f(n):

a,b=0,1

for _ in range(n): #O(N),O(1)

    a,b=b,a+b

return a

配合这个系列做的视频笔记 第6课 教媳妇编程: 计算斐波那契数列的三种方法_哔哩哔哩_bilibili

你可能感兴趣的:(1. 斐波那契数列四种计算方法)