成都创新互联网站制作重庆分公司

斐波拉函数python,斐波那契函数递归分析

python 打印斐波那契数列前二十项中中既能被三整除又能被五整除的数?

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

创新互联公司主营江北网站建设的网络公司,主营网站建设方案,APP应用开发,江北h5小程序设计搭建,江北网站营销推广欢迎江北等地区企业咨询

def fibonacci(n):

"""生成斐波拉数列的元素"""

a, b = 0, 1

for item in range(n + 1):

a, b = b, a + b

return a

fibonacci_list = list()

for i in range(20):  # 将前20个保存到列表中

fibonacci_list.append(fibonacci(i))

# ls=[1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765]

for item in fibonacci_list:

if item % 5 == 0 and item % 3 == 0:  # 被3和5整除,即余数是0

print(item, end=" ")

用python怎么写斐波那契数列?

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

def fib(num):

fibs=[0,1]

#num=input('请输入婓波那契数列中的数据个数:')

for i in range(int(num)-2):

fibs.append(fibs[-2]+fibs[-1])

print(fibs)

print(fibs[-2])

fib(10)

在数学上

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

用python函数写斐波那契数列是什么?

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

# 判断输入的值是否合法

if nterms = 0:

print("请输入一个正整数。")

elif nterms == 1:

print("斐波那契数列:")

print(n1)

else:

print("斐波那契数列:")

print(n1,",",n2,end=" , ")

while count nterms:

nth = n1 + n2

print(nth,end=" , ")

# 更新值

n1 = n2

n2 = nth

count += 1

平方与前后项

从第二项开始(构成一个新数列,第一项为1,第二项为2,……),每个偶数项的平方都比前后两项之积多1,每个奇数项的平方都比前后两项之积少1。如:第二项 1 的平方比它的前一项 1 和它的后一项 2 的积 2 少 1,第三项 2 的平方比它的前一项 1 和它的后一项 3 的积 3 多 1。

用python编写函数计算斐波那契数列的前n项,并将结果存在Fibonacci.txt中,每行5个

def Fibonacci(n):

if n == 1:

return 1

dic = [-1 for i in xrange(n)]

dic[0], dic[1] = 1, 1

helper(n-1, dic)

linesize = 5

file=open('Fibonacci.txt', 'w')

for loop in range(len(dic)/linesize):

line = []

for i in range(linesize):

line.append(dic[i + linesize * loop])

file.write("\t".join([str(x) for x in line]) + "\n")

file.close()

def helper(n, dic):

if dic[n]  0:

dic[n] = helper(n-1, dic)+helper(n-2, dic)

return dic[n]

Python求助 要生成斐波拉数列这个代码要怎么改

class indexer:

def __init__(self):

self.fib = {0: 1, 1: 1}

def __getitem__(self, index):

try:

return self.fib[index]

except KeyError:

v = self[index-1] + self[index-2]

self.fib[index] = v

return v

X = indexer()

for i in range(5):

print(X[i])

那些Python中的模块

Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了。这个时候我们需要将python程序保存在一个文件里。通常这个文件是以.py结尾的。

对于大型的应用程序来说,一个文件可能是不够的,这个时候我们需要在文件中引用其他的文件,这样文件就叫做模块。

模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py 。在模块内部,模块名可以通过全局变量 __name__ 获得。

还是之前的斐波拉赫数列的例子,我们在fibo.py文件中存放了函数的实现:

编写完毕之后,我们可以在Python的解释环境中导入它:

然后直接使用即可:

常用的函数,我们可以将其赋值给一个变量:

或者,我们在导入的时候,直接给这个模块起个名字:

或者导入模块中的函数:

每个模块都有它自己的私有符号表,该表用作模块中定义的所有函数的全局符号表。因此,模块的作者可以在模块内使用全局变量,而不必担心与用户的全局变量发生意外冲突。

前面我们提到了可以使用import来导入一个模块,并且 __name__ 中保存的是模块的名字。

和java中的main方法一样,如果我们想要在模块中进行一些测试工作,有没有类似java中main方法的写法呢?

先看一个例子:

在模块中,我们需要进行一个判断 __name__ 是不是被赋值为 "__main__"。

我们这样来执行这个模块:

以脚本执行的情况下,模块的 __name__ 属性会被赋值为 __main__ , 这也是例子中为什么要这样写的原因。

看下执行效果:

如果是以模块导入的话,那么将不会被执行:

使用import导入模块的时候,解释器首先会去找该名字的内置模块,如果没找到的话,解释器会从 sys.path变量给出的目录列表里寻找。

sys.path的初始目录包括:

要想查看模块中定义的内容,可以使用dir函数。

上面的例子列出了当前模块中定义的内容,包括变量,模块,函数等。

我们可以给dir加上参数,来获取特定模块的内容:

java中有package的概念,用来隔离程序代码。同样的在Python中也有包。

我们看一个Python中包的例子:

上面我们定义了4个包,分别是sound,sound.formats, sound.effects, sound.filters。

__init__.py 可以是一个空文件,也可以执行包的初始化代码或设置 __all__ 变量。

当导入的时候, python就会在 sys.path 路径中搜索该包。

包的导入有很多种方式,我们可以导入单个模块:

但是这样导入之后,使用的时候必须加载全名:

如果不想加载全名,可以这样导入:

那么就可以这样使用了:

还可以直接导入模块中的方法:

然后这样使用:

如果一个包里面的子包比较多,我们可能会希望使用 * 来一次性导入:

那么如何去控制到底会导入effects的哪一个子包呢?

我们可以在 __init__.py 中定义一个名叫 __all__ 的列表,在这个列表中列出将要导出的子包名,如下所示:

这样from sound.effects import * 将导入 sound 包的三个命名子模块。

如果没有定义 __all__,from sound.effects import * 语句 不会 从包 sound.effects 中导入所有子模块到当前命名空间;它只会导入包 sound.effects。

Import 可以指定相对路径,我们使用 . 来表示当前包, 使用 .. 来表示父包。

如下所示:


网站栏目:斐波拉函数python,斐波那契函数递归分析
浏览地址:http://cxhlcq.com/article/dsejgps.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部