Fibonacci數列求和
阿新 • • 發佈:2019-01-13
__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()可直接對陣列求和