草庐IT

RRT算法

全部标签

c++ - 柴油发电机驱动算法

我有一个旧的柴油发电机,我在给调速器编程时遇到了很大的问题。我需要引擎保持在2400-2800RPM之间我有强大的RC汽车伺服插入发动机的throttle杆,伺服在22°(最小)和95°(最大)燃油喷射之间移动我用Atmelmeg328微Controller驱动它。速度通过哈尔效应传感器和飞轮上的单个磁铁测量。我测量转一整圈所需的时间,并据此计算RPM(这意味着如果引擎速度更快,代码会更频繁地对其使用react=>喷射量变化更快)首先我尝试了最简单、最愚蠢的方法。如果RPM大于我的需要,则将伺服后退=>较小的燃油喷射量。如果RPM低于所需的步进伺服前进。结果证明这是一个非常糟糕的主意,

c++ - 用于查找图像堆栈中每个像素的平均值的快速数据结构或算法

我有一堆图像,我想计算其中每个像素的平均值。例如,设(x_n,y_n)为第n张图像中的(x,y)像素。因此,图像堆栈中三幅图像的像素(x,y)的平均值为:mean-of-(x,y)=(1/3)*((x_1,y_1)+(x_2,y_2)+(x_3,y_3))我的第一个想法是将每个图像的所有像素强度加载到具有单个线性缓冲区的数据结构中,如下所示:|Allpixelsfromimage1|Allpixelsfromimage2|Allpixelsfromimage3|为了找到图像堆栈中像素的总和,我执行了一系列嵌套的for循环,如下所示:for(intcol=0;col基本上img*img_

c++ - 快速 nbody 算法/解决方案(使用 opengl/c++/??)

我正在从事一个(c++,opengl)项目,我需要有很多相互影响的粒子,如果我是正确的话,这被称为nbody问题。有人知道这样的算法有什么解决方案吗。我知道barneshut算法,也许我可以看看openCL,不过我不只是想知道您是否使用了其他解决方案。我将创建的代码将包含很多:for(inti=0;ilimit){....}}}亲切的问候,北河三 最佳答案 Kd-trees非常适合寻找最大距离内的所有物体(在本例中为粒子)。如果树是平衡的,查找是O(logn)。 关于c++-快速nbod

c++ - 在无向树中寻找路径的算法

假设我有一棵无向树,我需要在两个节点之间找到一条路径(唯一路径)。最好的算法是什么。我可能可以使用Dijkstra算法,但对于树来说可能有更好的算法。C++示例会有所帮助但不是必需的谢谢 最佳答案 假设每个节点都有一个指向其父节点的指针,那么只需从每个起始节点向根节点回溯树。最终,这两条路径必须相交。交集测试可以像维护节点地址的std::map一样简单。更新当您更新问题以指定无向树时,以上内容无效。一种简单的方法是简单地从节点#1开始执行深度优先遍历,最终您将到达节点#2。这是树的大小的O(n)。假设有一个完全通用的树,我不确定是否

c++ - 算法:查找给定范围内的数字计数

给定一个未排序的数字数组,其中可能存在重复项,对数组进行预处理,以便找到给定范围内数字的计数,时间为O(1)。例如,7,2,3,2,4,1,4,6.数字的计数都是>=2和是5.(2,2,3,4,4). 最佳答案 对数组进行排序。对于已排序数组中的每个元素,将该元素插入到哈希表中,以元素的值作为键,并将其在数组中的位置作为关联值。任何被跳过的值,您都需要插入。要查找范围内的项目数,请在哈希表中查找范围每一端的值的位置,然后从上限减去下限以找到范围的大小。 关于c++-算法:查找给定范围内的

c++ - OBB(定向边界框)算法中的点?

给定形成OBB的中心点、宽度、高度和角度,如何确定给定点P是否在OBB内?谢谢 最佳答案 我认为你的问题中的皱纹是边界框可以旋转?如果是这样,对我来说最简单的解决方案似乎是在以边界框中心为中心的旋转坐标平面中进行所有计算。要计算点相对于这些轴的坐标:newy=sin(angle)*(oldy-centery)+cos(angle)*(oldx-centerx);newx=cos(angle)*(oldx-centerx)-sin(angle)*(oldy-centery);(您可能需要根据角度的测量方式进行调整,我会把它留给您,因为

【动态规划】【C++算法】956 最高的广告牌

作者推荐【动态规划】【map】【C++算法】1289.下降路径最小和II本文涉及知识点动态规划汇总956.最高的广告牌你正在安装一个广告牌,并希望它高度最大。这块广告牌将有两个钢制支架,两边各一个。每个钢支架的高度必须相等。你有一堆可以焊接在一起的钢筋rods。举个例子,如果钢筋的长度为1、2和3,则可以将它们焊接在一起形成长度为6的支架。返回广告牌的最大可能安装高度。如果没法安装广告牌,请返回0。示例1:输入:[1,2,3,6]输出:6解释:我们有两个不相交的子集{1,2,3}和{6},它们具有相同的和sum=6。示例2:输入:[1,2,3,4,5,6]输出:10解释:我们有两个不相交的子集

c++ - 需要帮助在 C++ 中实现 Karatsuba 算法

先介绍一下背景:-我是第一次发布海报,是一名大学学生(不是编程专业)。-这不是作业题,我只是为了好玩才这样做。-我的编程经验包括一个学期(3个月)的C++和高中的一些QBasic。-是的,我查看了GMP和Bignum库;从原始代码中学习东西非常困难,尤其是在不了解程序员意图的情况下。此外,我想自己学习如何做。我正在为任意大的整数编写一个乘法函数。我使用字符数组来表示这些数字,末尾有一个+或-作为标记(例如“12345+”、“31415-”)。我目前正在实现Karatsuba算法。问题是使用递归和动态内存分配,该函数比原始方法慢5倍。我可以使用一些关于如何减少运行时间的提示。char*d

2024牛客寒假算法基础集训营1

文章目录A.DFS搜索B.关鸡C.按闹分配D.数组成鸡E.本题又主要考察了贪心F.鸡数题G.why买外卖H.01背包,但是bitI.It'sbertrandparadox.Again!K.牛镇公务员考试L.要有光M.牛客老粉才知道的秘密A.DFS搜索从前往后遍历字符串,根据字母出现顺序进行判断,时间复杂度O(n)O(n)O(n)#include#defineintlonglong#defineYES"YES"#defineNO"NO"usingnamespacestd;typedeflonglongll;typedefpairint,int>pii;constdoubleeps=1e-9;co

c++ - 有理函数级数展开的最佳算法

我需要用C++编写函数代码,它可以有效地找到给定有理函数(P(x)/Q(x))的泰勒级数系数。函数参数将是多项式的幂(分母和分母相等),两个具有多项式系数和展开项数的数组。我的想法如下。考虑身份P(x)/Q(x)=R(x)+...其中R(x)是一个多项式,其项数等于我需要找到的系数数。然后我可以将两边与Q(x)相乘并得到P(x)=R(x)*Q(x)R(x)*Q(x)-P(x)=0因此,所有系数都应为零。这是用O(n^3)算法求解的方程组。O(n^3)没有我想要的那么快。有没有更快的算法?我知道级数的系数满足线性递推关系。这让我觉得O(n)算法是可能的。 最佳