大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用无理数表示。
丰南网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
这样一个完全是自然数的数列,通项公式却是用无理数来表达的,而且当趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618或者说后一项与前一项的比值小数部分越来越逼近0.618。
他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点于阿尔及利亚地区,莱昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及叙利亚希腊西西里和普罗旺斯等地研究数学。另外斐波纳契还在计算机C语言程序题中应用广泛。
如果只计算这个表达式,那么直接用下面的语句就可以输出结果:
print(1/2+2/3+3/5);
如果是计算这个数列的前n项目,那么这个数列的下一项和通项公式还需要先猜出来,我猜测3/5的下一项是4/8,通项公式第i项的分子为i、分母为上一项的分子与分母之和,那么代码为:
n=int(input('n='))
a=1
b=1
f=0
s=''
for i in range(1,n+1):
f = f + i/(a+b)
if s!='':
s = s + ' + '
s = s + '{}/{}'.format(i,a+b)
b = a+b
a = i
print(s,'=',f)
直接创建一个类然后调用下面的def函数即可
#斐波那契数列
'''
第一位是1
第二位是1
第三位是2
公式位F(n)=f(n-1)+f(n-2)
'''
def get_Fibonacci_sequence(n):
'''输入n,遍历到第n位的斐波那契数列'''
a,b=0,1
if n=3:#即等于2 相当于1,2位特殊处理
for i in range(n-1):#操作次数是n-1,去除一次第一位的操作
c=a+b
a,b,=b,c
print(b)#这里选择先改变再输出,可以减少1次的循环
def get_Fibonacci_Num(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数'''
a, b = 0, 1
if n = 3: # 即等于2 相当于1,2位特殊处理
for i in range(n - 1): # 操作次数是n-1,去除一次第一位的操作
c = a + b
a, b, = b, c
# 这里选择先改变再输出,可以减少1次的循环
return b
def get_Fibonacci_Num_recursion(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数,递归实现'''
if n==1 or n==2:#特别注意,这里要用逻辑或判断,不能直接用或判断,
return 1
else:
return get_Fibonacci_Num_recursion(n-1)+get_Fibonacci_Num_recursion(n-2)
get_Fibonacci_sequence(11)
print(get_Fibonacci_Num(11))
print(get_Fibonacci_Num_recursion(11))
import time #用于结尾的等待
over=0 #新建一个列表来存储数据
into=0
into=int(input('输入n是多少:'))#不嫌麻烦的话可以加一个try except防止出错
for i in range(1,into+1):
over=i*i+over
print('结果是',over)
time.sleep(1)#等待1秒,不需要可以删除
你看看你递归代码的复杂度 是O(2^n) 而第二个的复杂度是O(n) 运行效率当然不同COUNTER = 0
def fibn(n):
global COUNTER
COUNTER += 1
if n == 0:
return 1
elif n == 1:
return 1
else:
return fibn(n-1) + fibn(n-2)
statistics = []
for i in range(35):
COUNTER = 0
fibn(i + 1)
statistics.append(((i + 1), COUNTER))
print statistics[(1, 1), (2, 3), (3, 5), (4, 9), (5, 15), (6, 25), (7, 41), (8, 67), (9, 109), (10, 177), (11, 287), (12, 465), (13, 753), (14, 1219), (15, 1973), (16, 3193), (17, 5167), (18, 8361), (19, 13529), (20, 21891), (21, 35421), (22, 57313), (23, 92735), (24, 150049), (25, 242785), (26, 392835), (27, 635621), (28, 1028457), (29, 1664079), (30, 2692537), (31, 4356617), (32, 7049155), (33, 11405773), (34, 18454929), (35, 29860703)]做了一个简单的proflieimport cProfile
import pstats
def fibn(n):
if n == 0:
return 1
elif n == 1:
return 1
else:
return fibn(n-1) + fibn(n-2)
print ' i, calls, time'
for i in range(50):
pr = cProfile.Profile()
pr.enable()
fibn(i)
pr.disable()
stats = pstats.Stats(pr)
stats.strip_dirs()
st = stats.stats[('test1.py', 3, 'fibn')]
print '%3d, %10d, %8f' % (i, st[1], st[3])
i, calls, time 0, 1, 0.000000 1, 1, 0.000001 2, 3, 0.000003 3, 5, 0.000005 4, 9, 0.000008 5, 15, 0.000012 6, 25, 0.000020 7, 41, 0.000033 8, 67, 0.000165 9, 109, 0.000088 10, 177, 0.000141 11, 287, 0.000228 12, 465, 0.000450 13, 753, 0.000601 14, 1219, 0.001016 15, 1973, 0.003561 16, 3193, 0.002593 17, 5167, 0.004372 18, 8361, 0.007097 19, 13529, 0.011073 20, 21891, 0.018552 21, 35421, 0.032467 22, 57313, 0.051762 23, 92735, 0.095383 24, 150049, 0.133490 25, 242785, 0.212390 26, 392835, 0.352861 27, 635621, 0.578204 28, 1028457, 0.987839 29, 1664079, 1.506812 30, 2692537, 2.682802 31, 4356617, 3.998936 32, 7049155, 8.089419 33, 11405773, 13.058235 34, 18454929, 23.930004 35, 29860703, 36.503880目测fibn(50)要算出来需要两周