几日前,在看明朝那些事儿的时候突然看到书中有提到黄金分割数,于是兴起百度了一下黄金分割数的具体概念,发现了黄金分割数与斐波那契数列之间不可言喻的联系。
黄金分割数相信大家都听说过但是很少去刻意了解。我先给大家解释一下黄金分割数的定义:把一条线段分割为两个部分,使其中一部分与全长之比等于另一部分与这部分之比。其比值是一个无理数,取其前三位数字的近似值是0.618.
斐波那契数列定义:斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1,1,2,3,5,8,13......这个数列从第3项开始,每一项都等于前两项之和。
研究发现,相邻两个斐波那契的比值是随序号的增加而逐渐趋于黄金分割比的。即f(n)/f(n-1)-->1.618 f(n)/f(n+1)-->0.618...由于斐波那契都是整数,两个整数相除的结果是有理数,所以只是逐渐逼近黄金分割比这个无理数。但是当我们继续计算出后面更大的斐波那契数时,就会发现相邻两数之比确实是非常接近黄金分割比的。
接下来我们就用python来实现黄金分割比的验证:
fib = [1] # 定义列表, 存放斐波那契数列
a, b = 1, 1
for i in range(50):
fib.append(b)
a, b = b, a + b
print(fib)
for i in range(50):
c = fib[i] / fib[i + 1]
print(c)
这样就可以看到当循环到后面时,c就近似等于0.618了。