📜  使用黄金比例找到第n个斐波那契数(1)

📅  最后修改于: 2023-12-03 15:22:27.367000             🧑  作者: Mango

使用黄金比例找到第n个斐波那契数

斐波那契数列是指,前两个数都为1,从第三项开始,每一项均为前两项之和。即:1,1,2,3,5,8,13,21,34,55,……

在数学上,斐波那契数列是以递推的方式定义的,可以用以下公式表示:

$$ F_n = \begin{cases} 1 & n=1,2 \ F_{n-1} + F_{n-2} & n > 2 \end{cases} $$

斐波那契数列有许多有趣的性质和应用。其中一个重要的性质是黄金分割率(Golden Ratio)的出现。

黄金分割率

黄金分割率是指一条线段分成两部分,其中较大部分与整条线段的比值等于较小部分与较大部分的比值。这个比例可以用以下公式表示:

$$ \frac{a+b}{a} = \frac{a}{b} = \phi $$

其中,$\phi$(读作phi)表示黄金分割率,其值约为$1.618$。黄金分割率有许多重要的数学和美学应用。

例如,在矩形长宽比例中,最美观的比例就是黄金分割率。而且,在自然界和艺术品中也经常出现黄金分割率的比例。

黄金分割率与斐波那契数列

黄金分割率与斐波那契数列有着密切的联系。可以证明,斐波那契数列中相邻两项的比值越来越接近黄金分割率:

$$ \lim_{n \to \infty} \frac{F_{n+1}}{F_n} = \phi $$

假设数列中相邻两项的比值为$x$,则可以得到以下等式:

$$ x = \frac{F_{n+1}}{F_n} = \frac{F_n + F_{n-1}}{F_n} = 1 + \frac{1}{1 + \frac{F_{n-1}}{F_n}} = 1 + \frac{1}{1+x} $$

通过移项,可以得到以下方程:

$$ x^2 + x - 1 = 0 $$

解出$x$,得到:

$$ x = \frac{-1 + \sqrt{5}}{2} = \phi $$

因此,当$n$越来越大时,$\frac{F_{n+1}}{F_n}$越来越接近黄金分割率。

通过黄金分割率找到第n个斐波那契数

通过黄金分割率的特性,可以利用以下公式,快速计算第$n$个斐波那契数:

$$ F_n = \frac{\phi^n - (1-\phi)^n}{\sqrt{5}} $$

其中,$\phi$表示黄金分割率,其值为$\frac{-1 + \sqrt{5}}{2}$。

利用上述公式,可以设计出以下Python函数,用于找到第$n$个斐波那契数:

def fib(n):
    phi = (1 + 5 ** 0.5) / 2
    return int((phi**n - (1-phi)**n) / 5 ** 0.5)

这个函数有一个参数$n$,表示需要找到第$n$个斐波那契数。函数内部通过黄金分割率公式计算得到结果。

以下是使用示例:

print(fib(10)) # 输出:55
print(fib(20)) # 输出:6765