首页 > 编程语言 >Python 学习 第三册 第13章 动态规划

Python 学习 第三册 第13章 动态规划

时间:2024-06-21 10:59:13浏览次数:21  
标签:13 return 数列 第三册 memo fib Python result 那契

----用教授的方式学习

目录

13.1 又见斐波那契数列

13.2 动态规划与 0/1 背包问题

13.3 动态规划与分治算法


13.1 又见斐波那契数列

一个很直观的斐波那契数列的递归实现:

def fib(n): 

      """假设n是非负整数返回第n个斐波那契数""" 

      if n == 0 or n == 1: 

             return 1  

     else:  

            return fib(n-1) + fib(n-2) 

以上代码效率太低,假设fib(120)需要250000年才能结束。

使用备忘录法的斐波那契数列实现可增加效率:

def fastFib(n, memo = {}): 
    """假设n是非负整数,memo只进行递归调用 返回第n个斐波那契数""" 
    if n == 0 or n == 1: 
       return 1 
    try: 
       return memo[n] 
    except KeyError: 
       result = fastFib(n-1, memo) + fastFib(n-2, memo) 
       memo[n] = result 
       return result

13.2 动态规划与 0/1 背包问题

给出一个决策树,在背包能够容纳的最大重量为5的假设之下,可以确定应该带走哪些物品。树的根节点(节点0)有一个标签<{}, [a, b, c, d], 0, 5>,表示没有选择物品,所有物品都处于待定状态,带走的物品总值为0,背包剩余空间还能容纳的重量为5。

标签:13,return,数列,第三册,memo,fib,Python,result,那契
From: https://blog.csdn.net/weixin_38135241/article/details/139803894

相关文章

  • Python 学习 第四册 第8章 结构化的文本文件
    ----用教授的方式学习。目录8.1结构化的文本文件8.1.1CSV8.1.2 XML8.1.3 JSON8.1.4 YAML8.1结构化的文本文件结构化的文本有很多格式,区别它们的方法如下所示。• 分隔符,比如 tab('\t')、逗号(',')或者竖线('|')。逗号分隔值(CSV)就是这样的例子。• '<' 和 '>' ......
  • Python 入门 —— 字符串
    Python入门——字符串文章目录Python入门——字符串基本操作创建字符串字符串访问内置函数字符串格式化百分号格式化`format`函数模板字符串正则表达式基本字符特殊字符边界匹配数量词字符集捕获组扩展标记法扩展模式非捕获版本命名分组添加注释环视条件匹配:`......
  • Python 学习 第三册 第12章 图的最优化问题
    ----用教授的方式学习。目录12.1图的最优化问题12.1.1最短路径:深度优先搜索和广度优先搜索12.1图的最优化问题我们下面研究另一种最优化问题。假设你有一个航空公司航线的价格列表,其中包括美国任意两个城市之间的航班价格。假设有3个城市A、B和C,从A出发经过B到达C的价格......
  • 热搜不再错过:用Python打造你的微博热搜追踪器
    简介在当今信息爆炸的时代,获取最新、最热门的信息成为了许多人的日常需求。微博热搜榜作为反映社会热点和公众关注焦点的重要窗口,其信息价值不言而喻。本文将介绍一个实用的Python爬虫程序,它能够自动爬取微博热搜榜的信息,并通过邮件的形式将这些信息发送给用户,帮助用户及时......
  • 文科生脑回路也学得会|Python自学笔记0620
    python安装(windows版)Python官网:WelcometoPython.org(本地机查看)设置-系统-关于-设备规格-系统类型【举例说明】WIN10系统进入各种安装版本 PythonReleasesforWindows|Python.org版本选择界定标准:电脑是64位操作系统,优先选64(win10选这个没影响,windows7以前的用......
  • HCIA17 Python自动化基础 之telnet lib 库
    1.实验介绍及拓扑公司交换机,管理IP地址为192.168.0.101/24。现编写自动化脚本,查看设备当前配置文件。2.掌握内容及配置思路2.1掌握内容Python基本语法telnetlib基本方法2.2配置思路1.   完成设备Telnet预配置(配置Telnet密码,开启Telnet功能和允许Telne......
  • m2_day13 [项目周]
    课程内容:GUI图形用户界面监听攻略GUIGUI=>G=图形U=用户I=接口​图形用户接口=用户图形界面...​java.awt.*; Button重量级组件javax.swing.*;JButton轻量级组件​常见的6个步骤:1.选择容器Container和组件Component......
  • 【Python日志模块全面指南】:记录每一行代码的呼吸,掌握应用程序的脉搏
    文章目录......
  • 2024华为OD机试真题- 计算三叉搜索树的高度-(C++/Java/Python)-C卷D卷-100分
     2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述定义构造三叉搜索树规则如下:每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是:1.如果数小于节点的数减去500,则将数插入节点的左子树2.如果数大于节点的......
  • python GUI:tkinter 信息管理系统——不会长胖的斜杠(浔川python推广部)
    总览前言主要实现登录注册修改运行登录注册登录成功主界面添加查询查询成功保存信息信息管理系统v1.1登录界面获取账号密码主界面查询查询成功显示信息信息管理系统v2.0登录主界面增加查询删除显示代码获取前言本系统主要通过tkinter模块实现,通过读取对应的文件,实现登......