从兔子繁殖到黄金分割:3分钟用Python玩转斐波那契数列!

发布时间:2025-03-02 00:41  浏览量:52

斐波那契数列可理解为一种“自然生长密码”。它从0和1开始,后续每个数始终等于前两个数之和,比如0、1、1、2、3、5、8……这种叠加特性让它像植物分叉生长或兔子繁殖模型一样,呈现自然界的渐进式扩张规律12。当数列越往后,相邻两数的比值会无限接近黄金分割比例0.618,这也是它在艺术和建筑中被赋予美感的原因。比如自然界中的例子,比如花瓣排列、鹦鹉螺的螺旋结构。(见图2)#数据分析#

图1.数列的数学表达式

图2.花瓣的排列

图2.鹦鹉螺的结构

def fib_recursive(n):if n == 0:return 0elif n == 1:return 1else:return fib_recursive(n-1) + fib_recursive(n-2) # 递归调用前两项‌:ml-citation{ref="5,6" data="citationList"}

def fib_recursive(n): if n == 0: return 0 elif n == 1: return 1 else: return fib_recursive(n-1) + fib_recursive(n-2) # 递归调用前两项:ml-citation{ref="5,6" data="citationList"}

特点:代码简洁但重复计算多。计算fib(5)需15次函数调用,时间复杂度为O(2ⁿ),n>30时明显卡顿5。

def fib_iterative(n):a, b = 0, 1for _ in range(n):a, b = b, a + b # 通过变量交换逐项递推‌:ml-citation{ref="4,6" data="citationList"}return a

def fib_iterative(n): a, b = 0, 1 for _ in range(n): a, b = b, a + b # 通过变量交换逐项递推:ml-citation{ref="4,6" data="citationList"} return a

特点:仅需O(n)时间。计算fib(40)时,递归需数秒,迭代仅需几毫秒。