python使用动态规划解决不同路径问题

针对二维动态规划,还有一个问题就是关于求不同路径的实例,主要是说明在实际应用的场景中,要理解透彻实际问题的真正目的,就可以灵活实现代码编写。

对于求不同路径问题描述,对于一个机器人,处在一个mxn的网格子的最左上端,这个机器人每一次移动只能是向左或者向下移动一个格子,机器人的最终目的是到达网格子的最右下端,要想得到的就是这个机器人总共有多少中方法能够到达最右下端,约束条件是m和n的值不会超过100。

添加图片注释,不超过 140 字(可选)

对照动态规划问题的元素对这个问题进行分析,该问题中的机器人每次只能向下或者向右走一步,那如果这个机器人如果处在网格中的任意一处时,来自的机器人要不就是左侧要不就是来自上侧的网格子,所以对于当前机器人所处的网格子的路径数量,应该是到该格子的上侧格子路径总数和到该格子的左侧格子路径总数的数量之和,同时对于该问题限制了m和n的数量,该问题是可以使用动态规划思路来解决问题的。

添加图片注释,不超过 140 字(可选)

可以将该格子定义为一个二维网格空间,使用一个二维数组来进行表示,对于这个二维数组中的初始状态就是第一行和第一列都是1,这是显而易见的,第一列和第一行都只有一只公路径,到达第一行就只有向右走,到达第一列只有向下走的趋势才能够实现。

添加图片注释,不超过 140 字(可选)

其他的格子是在遍历过程中,使用递推关系式来进行填充格子的路径数量,也就是当前所在的网格的路径数量应该等于到达这个格子的左侧和上侧的各自的路径数量的总和。最终得到到达终点的格子的数量总和。完整代码如下:

 
 

def uniquePaths(self, m, n): dp=[] for i in range(n):#初始化 dp.append([0]*m) for i in range(n): dp[i][0]=1 dp[0]=[1]*m for i in range(1,n): for j in range(1,m): dp[i][j]=dp[i-1][j]+dp[i][j-1] return dp[n-1][m-1]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/284505.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity美术】Unity工程师对3D模型需要达到的了解【二】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

基于JavaWeb实验室预约管理系统(源码+数据库+文档)

一、项目简介 本项目是一套基于JavaWeb实验室预约管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,e…

【MATLAB】鲸鱼算法优化混合核极限学习机(WOA-HKELM)时序预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 鲸鱼算法优化混合核极限学习机(WOA-HKELM)是一种时序预测算法,它结合了鲸鱼算法和混合核极限学习机(HKELM)的优点。以下是该算法…

Ts自封装WebSocket心跳重连

WebSocket是一种在单个TCP连接上进行全双工通信的协议,允许客户端和服务器之间进行双向实时通信。 所谓心跳机制,就是在长时间不使用WebSocket连接的情况下,通过服务器与客户端之间按照一定时间间隔进行少量数据的通信来达到确认连接稳定的手…

大模型微调LoRA训练与原理

1.什么是LoRA? LoRA的全称是LOW-RANK-ADAPTATION。是一种实现迁移学习的技术手段。 2. 矩阵的秩? 秩是一个向量空间的基向量的个数。例如:二维平面坐标系存在两个基向量,平面上任意的一个向量都可以使用这两个基向量进行线性表示…

PS制作淘宝主图

PS制作淘宝主图 1.制作主图主页1.1新建800x800画板1.2填充前景色:altdel1.3选择圆角矩形,半径501.4按住ALT,往下投复制 2.调色 1.制作主图主页 1.1新建800x800画板 1.2填充前景色:altdel 1.3选择圆角矩形,半径50 居中对…

矿用以太网通讯的电缆传输可行性分析

概述 井下通讯系统是煤矿安全及生产调度必不可少的设施,近年泄露技术、小灵通技术、无线对讲技术及WIFI技术相继应用于煤矿井下。WIFI技术在地面的短距离无线通讯中已有多年的应用,相对于其他的无线宽带技术来说比较成熟可靠。 “泄露”技术及低频穿透技…

VC2019更改文件名称代码

VC2019更改文件名称代码 效果代码 效果 华为手机拍摄的视频默认名称是“VID_20231213_111723”,图片名称是“IMG_20231213_111723”,需要批量将“VID”改为“IMG” 代码 代码(C#): csharpStringBuilder sbnew StringBuilder()…

ROS TF坐标变换 - 静态坐标变换

目录 一、静态坐标变换(C实现)二、静态坐标变换(Python实现) 如前文所属,ROS通过广播的形式告知各模块的位姿关系,接下来详述这一机制的代码实现。 模块间的位置关系有两种类型,一种是相对固定…

使用spring boot实现异常的统一返回

在这个前后端分离的时代,一个 统一的数据格式非常重要。本次我们实现用spring boot实现一下返回给前端数据的统一格式,不再出现服务器500的错误。 新建一个spring boot项目,并导入knife4j的依赖。 写一个controller控制器,用来是…

Vue中全局事件总线的配置和原理

实现任意组件之间的通信 任意组件通信的原理: 1、实现任意组件之间的通信,需要一个傀儡。这个傀儡既能被vm访问到,也能被VueComponent访问。 2、VueComponent.prototype.proto Vue.prototype为图上1.0黄色的线路。是Vue让组件实例对象VueComponent可以访问到Vue原…

将学习自动化测试时的医药管理信息系统项目用idea运行

将学习自动化测试时的医药管理信息系统项目用idea运行 背景 学习自动化测试的时候老师的运行方式是把医药管理信息系统项目打包成war包后再放到tomcat的webapp中去运行,于是我想着用idea运行会方便点,现在记录下步骤方便以后查找最开始没有查阅资料&am…

【栈】根据模式串构造最小数字

import java.util.ArrayDeque; import java.util.Deque;/*** 思路:如果是字符‘I’直接对应的数字加入结果res中,如果是‘D’将对应的数字加入栈中。* 再次遇到‘I’先将对应的数字加入结果res中,然后再将栈中的元素从栈顶取出存放在* …

simulink代码生成(五)——ePWM模块初级应用

前面分别讲到了SCI及ADC的配置及使用,现在梳理一下ePWM的配置和使用; 先打一些基础的DSP28335的基础知识; F28335 关于ePWM中断与SOC采样信号的一些思考_socasel-CSDN博客 F28335 ePWM模块简介——TMS320F28335学习笔记(四&…

受“博比特虫”启发可实现多模态传感抓取动作的软执行器来了

软执行器可以实现对易碎和不规则形状物体的精细自适应抓取,这在生物和工程系统中至关重要。然而,目前软机器人在抓取的时候往往受制于抓取能力不足和功能限制。 博比特虫捕获猎物 最近研究人员提出了一种受博比特虫启发的多模态传感自适应软抓取器&…

simulink代码生成(六)——多级中断的配置

假如系统中存在多个中断,需要合理的配置中断的优先级与中断向量表;在代码生成中,要与中断向量表对应;中断相关的知识参照博客: DSP28335学习——中断向量表的初始化_中断向量表什么时候初始化-CSDN博客 F28335中断系…

sscanf的简介

sscanf 函数的原型: 第一个函数参数 const char * 表示字符串 (类似于scanf)第二个函数参数表示 格式 ​​​​​​​ ​​​​​​​ 第三个函数参数 首先sscanf函数可以用于以下几种情况: 分离数字: #i…

Java开发过程中的幂等性问题

幂等性问题: 1. 有时我们在填写某些 form表单 时,保存按钮不小心快速点了两次,表中竟然产生了两条重复的数据,只是id不一样。 2. 我们在项目中为了解决 接口超时 问题,通常会引入了 重试机制 。第一次请求接口超时了…

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷①

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项(高职组) 样题(第1套) 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项(高职组) 样题(第1套) 模块一…

消息队列LiteQueue

文章目录 一、简介二、设计2.1 队列结构设计2.2 队列接口设计 三、实现3.1 队列锁的实现3.2 创建队列3.3 写入队列3.4 读出数据3.5 判断队列是否为空3.6 判断队列是否为满3.7 清空队列3.8 删除队列 四、测试参考 一、简介 收到消息时先把接收到的消息放到队列中。在任务中从队…
最新文章