![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
编程技术
文章平均质量分 91
各种编程语言相关应用,各种算法的编程实现
东南坼
这个作者很懒,什么都没留下…
展开
-
【力扣刷题】动态规划问题的思考与总结
文章目录什么是动态规划解决动态规划问题的步骤基础递推算法子问题求和爬楼梯杨辉三角子问题最值最大子序和二维DP数组非最优子结构买卖股票(多状态递推)打家劫舍(分治算法)贪心算法背包问题(待补全)什么是动态规划动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。什么样的题目需要用动态规划?动态规划要解决的都是一些问题的最优解,即从很多解决问题的方案中找到最优的一原创 2021-08-18 11:36:07 · 655 阅读 · 1 评论 -
C++ priority_queue 用法详解
不出所料,priority_queue 容器适配器定义了一个元素有序排列的队列。默认队列头部的元素优先级最高。因为它是一个队列,所以只能访问第一个元素,这也意味着优先级最高的元素总是第一个被处理。但是如何定义“优先级”完全取决于我们自己。如果一个优先级队列记录的是医院里等待接受急救的病人,那么病人病情的严重性就是优先级。如果队列元素是银行的借贷业务,那么借记可能会优先于信贷。priority_queue 模板有 3 个参数,其中两个有默认的参数;第一个参数是存储对象的类型,第二个参数是存储元素的底层容器转载 2021-08-01 19:47:29 · 2178 阅读 · 0 评论 -
迭代器是什么,C++ STL迭代器(iterator)用法详解
无论是序列容器还是关联容器,最常做的操作无疑是遍历容器中存储的元素,而实现此操作,多数情况会选用“迭代器(iterator)”来实现。那么,迭代器到底是什么呢?我们知道,尽管不同容器的内部结构各异,但它们本质上都是用来存储大量数据的,换句话说,都是一串能存储多个数据的存储单元。因此,诸如数据的排序、查找、求和等需要对数据进行遍历的操作方法应该是类似的。既然类似,完全可以利用泛型技术,将它们设计成适用所有容器的通用算法,从而将容器和算法分离开。但实现此目的需要有一个类似中介的装置,它除了要具有对容器进转载 2021-07-14 21:22:11 · 2458 阅读 · 0 评论 -
C++ STL unordered_map容器用法详解
C++ STL 标准库中提供有 4 种无序关联式容器,本节先讲解 unordered_map 容器。unordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。对于已经学过 map 容器的读者,可以将 unordered_map转载 2021-07-14 21:10:02 · 1375 阅读 · 0 评论 -
C++ STL deque容器用法详解
deque 是 double-ended queue 的缩写,又称双端队列容器。前面章节中,我们已经系统学习了 vector 容器,值得一提的是,deque 容器和 vecotr 容器有很多相似之处,比如:deque 容器也擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。deque 容器也可以根据需要修改自身的容量和大小。和 vector 不同的是,deque 还擅长在序列头部添加或删除元素,所耗费的时间复杂度也为常数阶O(1)。并且更重要的一点是转载 2021-07-14 20:38:02 · 433 阅读 · 0 评论 -
C++ STL vector容器用法详解
vector 容器是 STL 中最常用的容器之一,它和 array 容器非常类似,都可以看做是对 C++ 普通数组的“升级版”。不同之处在于,array 实现的是静态数组(容量固定的数组),而 vector 实现的是一个动态数组,即可以进行元素的插入和删除,在此过程中,vector 会动态调整所占用的内存空间,整个过程无需人工干预。vector 常被称为向量容器,因为该容器擅长在尾部插入或删除元素,在常量时间内就可以完成,时间复杂度为O(1);而对于在容器头部或者中部插入或删除元素,则花费时间要长一些(转载 2021-07-14 20:30:23 · 273 阅读 · 0 评论 -
C++ STL array容器用法详解
array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全(原因后续会讲),且效率并没有因此变差。和其它容器不同,array 容器的大小是固定的,无法动态的扩展或收缩,这也就意味着,在使用该容器的过程无法借由增加或移除元素而改变其大小,它只允许访问或者替换存储的元素。STL 还提供有可动态扩展或收缩存储空间的 vector 容器,后续章节会对其做详细介绍。array 容器以类模板的形式定义在转载 2021-07-14 20:16:00 · 318 阅读 · 0 评论 -
C++ STL基本组成(6大组件+13个头文件)
C++ STL基本组成(6大组件+13个头文件)通常认为,STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的,它们各自的含义如表 1 所示。表 1 STL 组成结构STL的组成含义容器一些封装数据结构的模板类,例如 vector 向量容器、list 列表容器等。算法STL 提供了非常多(大约 100 个)的数据结构算法,它们都被设计成一个个的模板函数,这些算法在 std 命名空间中定义,其中大部转载 2021-07-14 17:48:54 · 370 阅读 · 0 评论 -
用MATLAB仿真仿射队形变换(affine formation maneuver)
文章目录写在前面如何仿真静态编队控制构建stress matrixMATLAB求解LMI问题静态编队控制源代码如何仿真时变轨迹和队形变换轨迹生成时变leader控制律时变轨迹和队形变换源代码写在前面原论文标题:Affine Formation Maneuver Control of Multiagent Systems.之前的文章讲了赵世钰的仿射编队控制原理1,进行了相关理论分析,发出来之后有不少同学私信问我如何复现他的论文。于是我现在再写这篇文章填个坑,把如何用MATLAB复现的思路讲一下,给之前的原创 2020-11-25 22:29:10 · 6239 阅读 · 33 评论 -
MATLAB App Designer生成独立GUI(可执行exe)并添加依赖项
文章目录写在前面生成步骤设置编译器编写GUI生成exe常踩的坑写在前面近期,由于朋友需求以及科研任务要求,我研究了一下MATLAB GUI设计,写了两个小程序。一个是读取excel部门名单生成excel排班表的排班生成器,另一个是用于机器人编队中的控制和优化算法仿真软件。程序在MATLAB上跑通很容易,麻烦的是如何将MATLAB GUI程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?这篇文章讲一下生成exe的经验。生成步骤生成exe的过程下面将一步步实现原创 2020-10-16 18:11:54 · 13958 阅读 · 19 评论 -
机械臂协同搬运中的内力建模
文章目录写在前面virtual linkage模型内力的计算两个机械臂搬运实例源代码写在前面上一篇文章(机械臂协同搬运中的阻抗控制)有一点遗留部分没有讲,即内力FintF_{int}Fint应该如何建模。我们知道,FintF_{int}Fint在抓持矩阵GGG的零空间里,即GFint=0GF_{int}=0GFint=0。如何选取一个有实际物理意义的模型,同时能够满足前述等式约束呢?这篇文章就会介绍一个virtual linkage模型1来表示搬运物体的内力。virtual linkage模型原创 2020-09-05 08:53:08 · 1113 阅读 · 1 评论 -
机械臂协同搬运中的阻抗控制
文章目录阻抗模型物体阻抗分布阻抗Matlab和RTB仿真物体阻抗分布阻抗源代码阻抗模型阻抗控制的目的是将原有物体动力学修正为我们期望动力学。假设有一个弹簧,通过阻抗控制,可以使得它的刚度降低,实际推它时有可能感觉像一个海绵。阻抗模型期望动力学一般为线性二阶系统Md(X¨o−X¨od)+Kv(X˙o−X˙od)+Kp(Xo−Xod)=Fext,M_d(\ddot X_o-\ddot X_o^d)+K_v(\dot X_o-\dot X_o^d)+K_p(X_o-X_o^d)=F_{ext},Md原创 2020-08-26 11:25:10 · 2599 阅读 · 10 评论 -
飞桨深度学习从零实践(一):从房价预测看模型构建
文章目录写在前面模型构建基本流程飞桨重写房价预测模型1. 数据处理2. 模型设计3. 训练配置4. 训练过程5. 保存模型测试模型预测效果源代码写在前面本文源于百度AI平台飞桨学院《百度架构师手把手带你零基础实践深度学习》课程中我自己的心得和理解。本文旨在介绍使用飞桨框架构建神经网络过程,并从房价预测模型的理解和代码的构建角度来整理所学内容,不求详尽但求简洁明了。模型构建基本流程飞桨的模型覆盖计算机视觉、自然语言处理和推荐系统等主流应用场景,所有场景的代码结构完全一致,如图1所示。图1.原创 2020-08-16 15:51:09 · 613 阅读 · 0 评论 -
用matlab和RTB做二连杆机械臂动力学建模
文章目录写在前面2连杆机械臂RTB建模仿真与验证源代码写在前面本文使用的工具为matlab以及Peter Corke的RTB(Robotics Toolbox)。基于RTB 10.3.1版本,我写了RTE(Robotics Toolbox Extension),增加了一些移动机器人、机械臂以及路径规划相关代码。同时,RTE也修复了原RTB的一些小bug。听说最近RTB出了10.4,不知道bug修复完没有,有用过的同学可以谈谈感想。个人建议这篇文章最好用我GitHub里的RTE工具箱,下载点这里。安装方原创 2020-08-15 15:40:37 · 11371 阅读 · 15 评论 -
git使用的几个小tips分享
文章目录写在前面问题1:Github上面的项目太大怎么办?仅clone某个分支仅clone最新一次commit问题2:Github下载速度慢怎么办?更改host利用Gitee同步问题3:git如何同步代码多个远程仓库?命名方式同步配置方式同步查看远程库写在前面本文是我在使用git过程中总结出来的几个小经验,能够解决初学者在使用远程仓库,如GitHub、Gitee等,可能遇到的几个常见问题。由于本人也在不断探索中,有新的经验也会继续在这里不定期更新。问题1:Github上面的项目太大怎么办?初学者看到原创 2020-07-28 18:18:54 · 1113 阅读 · 0 评论 -
ndarray数组基本结构和操作
写在前面一、创建ndarray(四种)二、属性操作(六个)三、基本运算(七个)四、索引和切片1. 一维数组2. 多维数组3. 查找索引五、统计方法(七类)六、随机数np.random1. 创建随机ndarray数组2. 随机打乱ndarray数组3. 随机选取元素(一维)七、线性代数八、文件读写与保存1. 文本读取2. 文件保存九、Numpy应用举例1. 计算激活函数Sigmoid和ReLU2. 图像翻转和裁剪...转载 2020-07-24 18:34:43 · 2186 阅读 · 0 评论