斐波拉契数列的递推递归求解算法

简介: 斐波拉契数列的递推递归求解算法

介绍:

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(3)=2,F(n)=F(n-1)+F(n-2)(n>=4,n∈N*)


递推=iterative;递归=recursive


递归指自我调用的函数;递推指重复进行的过程,这个重复的过程可以是,有自我调用的函数的重复的自我调用,也可以是其它过程。


1.裴波那契数列的递推求解算法。


#include<iostream>
using namespace std;
int Fib(int n){
    int f1=1,f2=1,i,f;
    if(n<=2)return 1;
    for(i=3;i<=n;i++){
        f=f1+f2;
        f1=f2;
    f2=f;
    }return f;
}
int main(){
  int n;
  cin>>n;
  for(int i=1;i<=n;i++){
    cout<<Fib(i)<<endl;
  }
  return 0;
}


2.裴波那契数列的递归求解算法。


#include<iostream>
using namespace std;
int Fib(int n){
  if(n<=2)return 1;
    return Fib(n-1)+Fib(n-2);
  }
int main(){
  int n;
  cin>>n;
  for(int i=1;i<=n;i++){
    cout<<Fib(i)<<endl;
  }
  return 0;
}


递推是数学上的概念,主要是指递推式或者说递推数列,递推函数,也就是说一个数列的下面一项有它的前面几项的值的一种运算(或者函数)构成,比如a[n]=a[n-1]+a[n-2];

递归是计算机中的概念,主要是指递归函数(计算机中函数同数学上函数意义也不相同,是指一段代码),就是指会调用自己的函数。显然,数学中的递推函数在计算机实现中可以通过递归来实现,但是不一定要通过递归来实现。

目录
相关文章
|
3天前
|
存储 算法 程序员
数据结构与算法===递归
数据结构与算法===递归
|
8天前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
22 7
|
9天前
|
算法 前端开发 Java
探讨Java中递归构建树形结构的算法
探讨Java中递归构建树形结构的算法
8 1
|
6天前
|
机器学习/深度学习 存储 算法
算法学习:递归
算法学习:递归
13 0
|
6天前
|
算法
二叉树删除节点算法---递归
二叉树删除节点算法---递归
|
6天前
|
算法
|
10天前
|
算法 C++
计算机算法设计与分析 第2章 递归与分治策略 (笔记)
计算机算法设计与分析 第2章 递归与分治策略 (笔记)
|
1天前
|
机器学习/深度学习 算法
基于鲸鱼优化的knn分类特征选择算法matlab仿真
**基于WOA的KNN特征选择算法摘要** 该研究提出了一种融合鲸鱼优化算法(WOA)与K近邻(KNN)分类器的特征选择方法,旨在提升KNN的分类精度。在MATLAB2022a中实现,WOA负责优化特征子集,通过模拟鲸鱼捕食行为的螺旋式和包围策略搜索最佳特征。KNN则用于评估特征子集的性能。算法流程包括WOA参数初始化、特征二进制编码、适应度函数定义(以分类准确率为基准)、WOA迭代搜索及最优解输出。该方法有效地结合了启发式搜索与机器学习,优化特征选择,提高分类性能。
|
4天前
|
机器学习/深度学习 算法 数据可视化
m基于PSO-LSTM粒子群优化长短记忆网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,应用PSO优化的LSTM模型提升了电力负荷预测效果。优化前预测波动大,优化后预测更稳定。PSO借鉴群体智能,寻找LSTM超参数(如学习率、隐藏层大小)的最优组合,以最小化误差。LSTM通过门控机制处理序列数据。代码显示了模型训练、预测及误差可视化过程。经过优化,模型性能得到改善。
19 6
|
1天前
|
缓存 算法
基于机会网络编码(COPE)的卫星网络路由算法matlab仿真
**摘要:** 该程序实现了一个基于机会网络编码(COPE)的卫星网络路由算法,旨在提升无线网络的传输效率和吞吐量。在MATLAB2022a中测试,结果显示了不同数据流个数下的网络吞吐量。算法通过Dijkstra函数寻找路径,计算编码机会(Nab和Nx),并根据编码机会减少传输次数。当有编码机会时,中间节点执行编码和解码操作,优化传输路径。结果以图表形式展示,显示数据流与吞吐量的关系,并保存为`R0.mat`。COPE算法预测和利用编码机会,适应卫星网络的动态特性,提高数据传输的可靠性和效率。