Fibonacci数列求和

__author__ = 'guoguo'
#encoding:utf-8
'''
求解fibonacci数列中取值不大于四百万且为偶数的项进行求和运算。
本文使用了一个基于黄金比例的公式。
'''
import numpy

#1.进行黄金比例phi的计算
phi=(1+numpy.sqrt(5)/2)
#2确定取值小于四百万的项的最大索引值
n=numpy.log(4*10**6*numpy.sqrt(5)+0.5)/numpy.log(phi)
print n
#3创建一个从到1的数组
n=numpy.arange(1,n)
print n
#计算fibonacci
fib=(phi**n-(-1/phi)**n)/numpy.sqrt(5)
print "First 10 Fibonacci Numbers",fib[:10]
#转换为整数
fib=fib.astype(int)
print "integers",fib
#选出偶数
eventerms=fib[fib%2==0]
print eventerms
#求和
print eventerms.sum()

#关于一些函数的用法
#1.numpy.arange()生成数组
#2.astype(int)转类型
#3.a=fib[fib%2==0],直接取出了偶数 应该好好了解python关于数组的运算
#4..sun()可直接对数组求和

运行结果

猜你喜欢

转载自blog.csdn.net/u012998237/article/details/48607615