斐波那契数列(Fibonacci sequence),又称递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

  

 1 # __Author__Panda-J____
 2 def fib(max):
 3     n,a,b=0,0,1
 4     while n<max:
 5         print(b)
 6         a,b=b,a+b#相当于tuple=(b,a+b),a=tuple[0],b=tuple[1]
 7         n+=1
 8     return 'done'
 9 
10 
11 print(fib(10))

  此时的数列全部生成并存在内存中。

  如果想使用生成器,可以实现使用一个数生成一个,这也是Generator的一个优点:节约内存,可即时响应。(百万量级的时候尤为明显)

  方法为:

print(b)--->yield(b)

  完整程序为:

 1 # __Author__Panda-J____
 2 def fib(max):
 3     n,a,b=0,0,1
 4     while n<max:
 5         yield (b)
 6         a,b=b,a+b#相当于tuple=(b,a+b),a=tuple[0],b=tuple[1]
 7         n+=1
 8     return 'done'
 9 
10 
11 f=fib(10)
12 print(f.__next__())
13 print("-------divided------")
14 print(f.__next__())
15 print(f.__next__())
16 print("==========")
17 for i in range(5):
18     print(f.__next__())
View Code

相关文章: