斐波那契问题(兔子问题)

您所在的位置:网站首页 斐波那契数兔子的由来 斐波那契问题(兔子问题)

斐波那契问题(兔子问题)

2024-07-11 10:23| 来源: 网络整理| 查看: 265

14天阅读挑战赛在这里插入图片描述14天阅读挑战赛努力是为了不平庸~

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

学习日记

目录

学习日记

一、斐波那契数列的概念

二、斐波那契的复现

1、递归实现

2、迭代实现

3、总结

三、兔子问题

一、斐波那契数列的概念

        斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。

        斐波那契数列指的是这样一个数列:

        0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711……

        它的规律是:这个数列从第 3 项开始,每一项都等于前两项之和。

        在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*),显然,斐波那契数列是一个线性递推数列。

        

        我们给出斐波那契数列的推导公式: 

二、斐波那契的复现

        常用的实现斐波那契数列的方法分为两大类:递归和循环。

1、递归实现

 #C语言版本

#include int F(int n) //斐波那契数列函数 递归形式 { if(n == 0) //初始化 return 0; if(n == 1 || n == 2) return 1; return F(n-1) + F(n-2); //如果n != 1 && n != 2 进行递归运算 } int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n", F(n)); } return 0; }

 #python版本

import time def Fibonacci(i): if i==0: return 0 elif i==1: return 1 else: return Fibonacci(i-1)+Fibonacci(i-2) def main(): a=time.time() for i in range(1,101): print(Fibonacci(i)) b=time.time() print("running time:%s Seconds"%(b-a)) main() 2、迭代实现

 #C语言版本

#include int fibonacci(int n) //定义斐波那契函数 { if(n == 0) //定义初始值 return 0; if(n == 1 || n == 2) return 1; int a=1,b=1,c=0; //定义初始值 //用一个for循环,a、b分别为前两项,c为前两项之和,得到c后进行交换更新a、b的值,进行n次交换即可。 for(int i=3;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3