斐波那契数列的两种方法
Key_Function
np.matrix函数, 创建矩阵
rint函数, 对浮点数取整, 但不改变浮点数类型
Code
import numpy as np # 第一种方法 F = np.matrix([[1, 1], [1, 0]]) print(F) ''' [[1 1] [1 0]] ''' print((F ** 7)[0, 0]) # 21 print((F ** 2)) ''' [[2 1] [1 1]] ''' print((F ** 3)) ''' [[3 2] [2 1]] ''' print((F ** 4)) ''' [[5 3] [3 2]] ''' # 第二种方法 # 利用黄金分割公式(比奈公式), 加上取整函数, 计算斐波那契数列 n = np.arange(1, 9) print(n) # [1 2 3 4 5 6 7 8] sqrt5 = np.sqrt(5) # 取开方 print(sqrt5) # 2.2360679775 phi = (1 + sqrt5) / 2 # 计算黄金分割率 print(phi) # 1.61803398875 fibonacci = np.rint((phi**n - (-1/phi)**n)/sqrt5) # rint函数, 对浮点数取整, 但不改变浮点数类型 print(fibonacci) # [ 1. 1. 2. 3. 5. 8. 13. 21.]
斐波那契数列的通项公式
通项公式
斐波那契数列与黄金分割率
斐波那契数列,这样一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近0.618)。
1÷1=1,1÷2=0.5,2÷3=0.666...,3÷5=0.6,5÷8=0.625…………,55÷89=0.617977……………144÷233=0.618025…46368÷75025=0.6180339886…...
越到后面,这些比值越接近黄金比.
证明
两边同时除以
得到:
。
若
的极限存在,设其极限为x,
则
。
所以
。
由于
解得
所以极限是黄金分割比。