美文网首页
01.07 笔记 - 递归

01.07 笔记 - 递归

作者: xxxQinli | 来源:发表于2019-01-07 18:10 被阅读0次

递归;实际开发的时候,能不用就不用

1.什么是递归函数

  • 在函数中调用函数本身的函数就是递归函数

2.递归的作用:循环能做的事情,递归都能做


3. 怎么写递归函数,用递归来解决实际问题


  • 第一步:确定临界值 -> 循环结束的条件,在临界值的地方要让递归结束(return)

  • 第二步:找关系 - 找当次循环和上次循环的关系;找f(n)和f(n-1)的关系

  • 第三步:假设函数的功能已经实现,通过f(n-1)来实现f(n)的功能 return f(n-1)与f(n)的关系


4.循环能做的事情不能使用递归做:

  • 使用循环,range(3)与range(3000)的内存消耗其实是差不多的,只是改变一个全局变量的值,但是内存消耗是差不多的

  • 使用递归,每递归一次,都在开辟一个新的内存空间,内存消耗特别大,额外开辟栈区间,当return后,又在不断的销毁内存空间,消耗cpu

# 1 + 2 + 3 + 4 ... n
# 使用递归
def ql_sum(n): # n为临界值
    # 1. 找临界值
    if n == 1: # n == 1 为起始值,感觉也像递归结束的地方
        return 1
    # 2. 找f(n)与f(n-1)的关系
    """
    ql_sum(n):ql_sum(n-1)+n -> 关系
    """
    # 3. return f(n)与f(n-1)的关系
    return ql_sum(n-1)+n

print(ql_sum(2500))

# 练习:求佩波那契数列第n个值
# 1,1,2,3,5,8,13,...
def sequence(n):
    # 1.找临界值
    if n == 1 or n == 2:
        return 1
    # 2. 找f(n)和f(n-1)的关系
    """
    f(n) = f(n-1)+f(n-2)
    """
    # 3. return f(n)与f(n-1)的关系    
    return sequence(n-1) + sequence(n-2)    

print(sequence(5))


相关文章

  • 01.07 笔记 - 递归

    递归;实际开发的时候,能不用就不用 1.什么是递归函数 在函数中调用函数本身的函数就是递归函数 2.递归的作用:循...

  • Clojure 学习笔记 :10 美妙的递归

    Clojure 零基础 学习笔记 递归 尾递归 Clojure 学习笔记 :10 美妙的递归 递归,或者说函数的递...

  • 01.07 笔记 - 模块

    1.什么是模块 在python中一个py文件就是一个模块,模块也有封装效果 a.系统模块(标准库) - pytho...

  • 理财日记(2021)

    2021.01.07 .01.07

  • 01.07 笔记 - 迭代器

    1. 什么是迭代器(iter) 是python提供的容器类型数据类型。 获取迭代器的元素只能从前往后一个一个的取,...

  • 《算法笔记》4.3小节——算法初步->递归

    @[TOC] Contest100000583 - 《算法笔记》4.3小节——算法初步->递归 4.3 递归理论与...

  • 01.07

    每次都说改变 从新开始 却总是半途而废 希望这次可以真的改变 从新开始 早安 加油 再深的感情也抵挡不住缘...

  • 01.07

    缺了两天的更文,确切的说其实是写日记!简单说明一下,01.05上了一整天班,新病人来了,中午安排手术,下午做...

  • 01.07

    颞叶 颞上回,颞中回,颞下回,颞横回,海马海马旁回杏仁核 感觉性失语,命名性失语,听觉障碍,精神记忆行为,癫痫 胃...

  • 01.07

    努力努力再努力

网友评论

      本文标题:01.07 笔记 - 递归

      本文链接:https://www.haomeiwen.com/subject/lmhprqtx.html