请教一下 我现在实在理解不了 f(n)=f(n-1)+f(n-2) 斐波那契数列

110次阅读

共计 1514 个字符,预计需要花费 4 分钟才能阅读完成。

请教一下 我现在实在理解不了 f(n)=f(n-1)+f(n-2) 斐波那契数列的递归方式

我能理解 FOR 循环  斐波那契数列

但是这个 f(n)=f(n-1)+f(n-2) 我研究 1 个多小时也没理解

看不懂 f(n)=f(n-1)+f(n-2) 这个 对后面 JS 学习影响大吗

不大我就跳过了 脑袋疼

网友回复:

注册 这个情况持续多久了

暗夜精灵 就是自己调用自己呗 可以先学 js 基础 基础学好了自然就懂了

js 攻城狮 怎么看不懂

dragonfsky 当然不影响 js 使用  递归一般也不怎么用

inighty 你先弄明白这是解决什么问题的再说吧 … 这弄不明白也没啥问题的

inighty 递归而已,看久了小心栈溢出

小白鸡 这点逻辑能力都没有说明不适合编程这条路。

HOH 先学栈,就比较容易懂了,因为方法的调用是通过栈实现的。

drivefuse 逻辑能力不好只能说明数学差而已,一般编程基本上没人编啥数学问题,要编的话框架也早就编好了根本不会让你从 0 造轮子,现在初中没毕业,培训包装一下都可以当程序员,你就知道门槛有多低了

EasyFame 递归

注册 这是递归 建议从简单的理解一下,我一开始学习递归的时候也觉得比较抽象,多抄写几遍慢慢就理解了。比如先从递归计算阶乘开始 f(n)=n*f(n-1) 的,慢慢到斐波拉契再到二叉树的前序遍历

注册 在编程,这是个递归问题。在数学,这是个函数写法。都可以理解的…

Dwight 编程语言喜欢用它来证明自己可以实现递归。这个公式本身不重要,能理解递归就行了。

逸笙 码农和程序员还是有区别的

witcat 递归当年学不会 学会了应该可以免试上 211 主要是老师太菜了

drivefuse n 就是第几(n)个数,也可以理解为下标。第 n 个数 = 前一个数(第 n - 1 个)+ 前两个数(第 n - 2 个),你结合数字一起看就很清楚了,8=5+3,13=8+5。1,1,2,3,5,8,13,21,34… 复制代码 学一个基础的递归思路,一个表达式,可能是不太常用,但是这个不难理解。

riofredinand 不太理解 n 是正常给的 1234567 这类数字 类似下标 她怎么正常数字 n - 1 她能往 1 1 2 3 5 8 13 21 这类数字上套呢   给的 N 数字 不应该往 123456789  公式就是求给个 5           不该是 5-1 +  5-2  吗   但是求 5 的斐波那契数 比如 5 是 5            10 是 55 N-1  N-2 这不是在已经知道 1 1 2 3 5 8 13 21 的基础上才知道吗 多谢大佬 这么晚指教

mlc 这个情况持续多久了

暗夜精灵 理解不了就不要理解 实际工作中,递归你一年也未必用上一次

mlc 科班这个是必须理解的,很基础的东西,这个搞不懂后面很麻烦的。不过你要就是自学找工作,那我还真不清楚,毕竟大家都是面向搜索引擎编程

注册 公式:f(n)=f(n-1)+f(n-2) 当 n = 5 时候,如果是下标为 5,那就是 f(5)=f(5-1)+f(5-2),即 f(5)=f(4)+f(3),所以 f(5)=5=3+2

注册 很多时候迭代和递归是可以互换的,只是写成递归的话可能会让别人不舒服(debug 栈太深会被人打

mlc 理解不了递归和语言无关。可以理解为倒着算,要求 f(n),得先知道 f(n-1)和 f(n-2),即前两项。类似,要求 f(n-1),要知道 f(n-2)和 f(n-3)。就这样一直往前推,直到 f(1)和 f(2)。再把结果逐层返回。递归主要用于一些复杂算法,不用递归写的话就比较麻烦。算是非常基本的一种编程思想,但 JS 里一般用不着,也不推荐用,除非没办法用非递归的方式写。

HOH 这个算是最简单最好理解的递归了吧,你就自己带入个数字进去比如 n =10 进去嵌套几次感受一下,一直到最后的 base case 退出循环

正文完
 0