递归

简单理解:

其实平时我们熟悉的很多数学函数都是可以由一个简单的公式搞定.比如将由华氏温度转变为摄氏温度:

C=5*(F-32)/9

相信有简单C语言基础都可以很简单的完成这个公式,除去程序中的说明注释以及大括号外就只是一行C程序代码.这是比较标准的函数,很多时候我们碰到的函数是不太标准,比如说

我们在非负整数集定义函数F:

它满足F(0)=0且

F(X)=2*F(X-1)+X^2.

F(1)=1,F(2)=6,F(3)=21,F(4)=58.当一个函数用他自己来定义时就称为递归.

(1) 首先,递归有一个基本情况比如上面F(0)=0,这是一个直接算出不用求助于递归.上面F(X)=2*F(X-1)+X^2如果没有F(0)=0,这个函数就是没有意义的,你必须总要有一些不用递归就能求解.

(2) 然后要有不断推进的过程,递归调用必须向能产生基本情况的方向进行.

举一个例子,想想你遇到一个陌生单词,现在你有一本大英语词典,上面所有的词语都是英文.当我们查一个单词时,我们对词典给出的解释又有不认识的,我们就不得不去查这个不认识的,这个不认识的词的解释中我们又有不知道的,就不断去查只要这个词典是正确的我们总会查完的.因为词典是有限的,所以到最后有两种情况,要不明白这个词语,要不我们就会一直循环下去无法明白其中的意思,或者在解释中我们需要理解的某个单词的解释就不在这本词典中.

(3) 设计法则.假设所有递归调用都能用,这事很重要的,因为它意味着当设计递归时不必试图去追踪大量递归调用.在实际使用中追踪递归调用序列是很难的,不过对于电脑就能算出复杂的细节.

(4) 合成效益法则.再求解一个问题的实例时,切勿在不同的递归调用中做重复性工作,比如用递归来计算斐波那这类的简单数学函数的值的想法就不是一个很好的想法.

(1)(2)来源于书上的,(3)(4)来源于网上的,全是个人整理,如有不足,多指教.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值