| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python动态规划算法实例详解 -> 正文阅读 |
|
[Python知识库]python动态规划算法实例详解 |
LET ' S BEGAINpython动态规划算法实例详解一、什么是动态规划?如果大家对“动态规划”这个生僻的术语不理解的话,那就先听小刘给大家说个现实生活中的实际案例吧: 虽然现在手机是相当的便捷,还可以付款,但是最初的时候,我们经常会使用硬币,其中,我们如果遇到手中有很多五毛或者1块钱硬币,要怎么凑出来5元钱呢?凑出来5元钱的这一个过程也可以称之为动态规划算法。 二、新视角:从斐波那契数列看动态规划斐波那契数列: F n = F n ? 1 + F n ? 2 ( n = 1 , 2 f i b ( 1 ) = f i b ( 2 ) = 1 ) Fn = Fn-1 + Fn-2(n = 1,2 fib(1) = fib(2) = 1) Fn=Fn?1+Fn?2(n=1,2fib(1)=fib(2)=1) 练习:使用递归和非递归的方法来求解斐波那契数列的第 n 项 代码如下:
如果看不懂上面模棱两可的介绍,还有下面更加直观的代码:
三、实例扩展(爬楼梯)1. 题目描述假设你正在爬楼梯,需要n阶才能到达楼顶,每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
2. 示例示例1输入: 2
示例2输入: 3
3. 解析如果给的两个示例看的不是特别清楚,你可以当阶梯为0,那么上楼梯方法0种这是必然,当阶梯只有1那么上楼梯方法只有1种: 当4个台阶: 输入:4
那么得到:
如果感觉看的不明显可以推理一下5阶,6阶… 可以得到当我们想爬n阶楼梯,我们可以得到: p ( n ? 1 ) + p ( n ? 2 ) p p(n-1) + p(n-2) p p(n?1)+p(n?2)p 为爬楼梯方法。 4. 代码实现
提交
四、结语
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 6:57:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |