要学会生成斐波那契数,首先要知道斐波那契以及斐波那契数是什么
斐波那契是中世纪最伟大的数学家,他发现的斐波那契数又称黄金分割数列,这一串数列是从第三个数开始,每个数都是前两个数的和。
斐波那契数:1,1,2,3,5,8,13,21,34,55,89,144,233,377……
下面是生成斐波那契数的两种方法:
第一种:
import turtle
import random
from math import *
def st(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return st(n-1)+st(n-2)
第一行的n是斐波那契数的项数,如果n小于等于0,那么数就是0,所以就没有这个数(斐波那契数从1开始),又如果n是1,那么就要放一个1,除去这两种情况,还有的可能就是大于1,那么n-1就是前一位,n-2就是前两位,这行代码也就是“从第三个数起,每个数都是前两个数的和”的意思
此处只是生成了斐波那契数
def s(n):
result_list = []
for i in range(1,n+3):
result_list.append(st(i))
return result_list
yu=s(12)
print(yu)
此处才是生成并存入列表
将其打印出就完成了
结果图:
第二种方法:
def fb(n):
a,b=1,1
print(a)
for i in range(n):
a,b=b,a+b
print(a)
fb(30)
第二种方法不仅代码少,而且生成得快,数字还多
短短7行代码,最重要的部分就是a,b=b,a+b,假如a是1,那么a=b=1,然后这个b又放在前面,使a+b(也就是2)等于了2,也就是b,打印出a(也就是1),再次循环使a+b=3,然后b就成了3,a以相同的方法变为2,然后继续2,3——3,5——5,8——8,13……
然后不断打印a得出斐波那契数列
结果图:
这两种生成斐波那契数的方法希望能给你们帮助,谢谢